码迷,mamicode.com
首页 > 编程语言 > 详细

牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫(斯特林公式) D.小牛vs小客 E.进击吧!阶乘(大数Java) G.大水题(数学)

时间:2018-02-12 22:20:03      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:target   print   mes   col   syn   多少   lan   bit   []   

技术分享图片

菜哭。。。

 

A.不凡的夫夫

传送门:写过了。。。







D.小牛vs小客
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
来源:牛客网

题目描述

小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)(1 2 3 4 取走 2 13 不算相邻)


输入描述:

输入包括多组测试数据
每组测试数据一个n(1≤n≤1e9)

输出描述:

每组用一行输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)
示例1

输入

2
3

输出

XiaoNiu
XiaoKe


这道题博弈吗?
代码:
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 #include<stack>
 7 #include<map>
 8 #include<vector>
 9 #include<queue>
10 #include<set>
11 using namespace std;
12 const int inf=1<<30;
13 const int maxn=1e5+10;
14 const double eps=1e-6;
15 const int mod=1e9+7;
16 typedef long long ll;
17 int main(){
18     int n;
19     while(~scanf("%d",&n)){
20         if(n==1||n==2)cout<<"XiaoNiu"<<endl;
21         else cout<<"XiaoKe"<<endl;
22     }
23     return 0;
24 }

 

 

 



E.进击吧!阶乘
时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给定一个整数N(0≤N≤10000),求取N的阶乘

输入描述:

多个测试数据,每个测试数据输入一个数N

输出描述:

每组用一行输出N的阶乘
示例1

输入

1
2
3

输出

1
2
6

最近一堆大数的,头大。
代码:Java
 1 import java.math.BigInteger;
 2 import java.util.Scanner;
 3  
 4 public class Main {
 5     public static void main(String[]args) {
 6         Scanner cin=new Scanner(System.in);
 7         int n;
 8         while(cin.hasNext()) {
 9             BigInteger ans,temp;
10             n=cin.nextInt();
11             ans=BigInteger.valueOf(1);
12             if(n==0) {
13                 System.out.println(1);
14             }
15             else {
16                 for(int i=1;i<=n;i++) {
17                     temp=BigInteger.valueOf(i);
18                     ans=ans.multiply(temp);
19                 }
20                 System.out.println(ans);
21             }
22         }
23     }
24 }

还有一个不是Java的,不是我写的

代码:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 #include<stack>
 7 #include<map>
 8 #include<vector>
 9 #include<queue>
10 #include<set>
11 using namespace std;
12 const int inf=1<<30;
13 const int maxn=1e5+10;
14 const double eps=1e-6;
15 const int mod=1e9+7;
16 typedef long long ll;
17 int a[maxn];
18 int main(){
19     int n;
20     ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
21     while(cin>>n){
22         memset(a,0,sizeof(a));
23         a[0]=1;
24         int h=1;
25         for(int i=1;i<=n;i++){
26             int res=0;
27             for(int j=0;j<h;j++){
28                 int temp=a[j]*i+res;
29                 a[j]=temp%10;
30                 res=temp/10;
31             }
32             while(res){
33                 a[h++]=res%10;
34                 res/=10;
35             }
36         }
37         for(int k=h-1;k>=0;k--)
38             cout<<a[k];
39         cout<<endl;
40     }
41     return 0;
42 }

 

 

 

 



G.大水题
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。

输入描述:

本题有多组输入
每行一个数n,1<=n<=10^18.

输出描述:

每行输出输出不是2 5 11 13的倍数的数共有多少。
示例1

输入

15

输出

4

说明

1 3 7 9



数学题。
代码:
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 #include<stack>
 7 #include<map>
 8 #include<vector>
 9 #include<queue>
10 #include<set>
11 using namespace std;
12 const int inf=1<<30;
13 const int maxn=1e5+10;
14 const double eps=1e-6;
15 const int mod=1e9+7;
16 typedef long long ll;
17 int main(){
18     ll n,ans;
19     while(~scanf("%lld",&n)){
20         ans=0;
21         ans+=n/2+n/5+n/11+n/13;
22         ans-=n/(2*5)+n/(2*11)+n/(2*13)+n/(5*11)+n/(5*13)+n/(11*13);
23         ans+=n/(2*5*11)+n/(2*5*13)+n/(2*11*13)+n/(5*11*13);
24         ans-=n/(2*5*11*13);
25         printf("%lld\n",n-ans);
26     }
27     return 0;
28 }

 

滚去写下一场的。

牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫(斯特林公式) D.小牛vs小客 E.进击吧!阶乘(大数Java) G.大水题(数学)

标签:target   print   mes   col   syn   多少   lan   bit   []   

原文地址:https://www.cnblogs.com/ZERO-/p/8445608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!