BO: 找规律填数字
小宇正在读小学,今天老师布置了几道数学题目。小宇平时上课经常不专心,这些他可发愁了,怎么办呢?看看你能不能帮帮他。
题目是给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,___,___,___,__,___。这是个等差数列,后面应该是6,7,8,9,10,就这么简单。而且现在小宇已经知道这串序列要么是等差数列,要么是等比数列或者是斐波那契数列。
输入
输入包含多组测试数据。每组输入5个整数,每个数字之间隔一个空格,当5个数字都为0时输入结束。
输出
对于每组输入,输出这串数列的后面5个数字,每个数字之间隔一个空格。
样例输入 Copy
1 2 3 4 5
1 2 4 8 16
1 2 3 5 8
0 0 0 0 0
样例输出 Copy
6 7 8 9 10
32 64 128 256 512
13 21 34 55 89
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// int a,b,c,d,e;
// int x = 0;
// int x1,x2,x3,x4,x5;
//// int a[5]
//// while(scanf("%d %d %d %d %d ",&a,&b,&c,&d,&e) != EOF){
// while(cin >> a >> b >> c >> d >> e){
// if(a == 0 && b == 0 && c == 0 && d == 0 && e == 0){
// break;
// }
// if(b - a == c - b&&c - b == d - c&&e - d == d - c){
// x = b - a;
// x1 = e + x;
// x2 = x1 + x;
// x3 = x2 + x;
// x4 = x3 + x;
// x5 = x4 + x;
// printf("%d %d %d %d %d\n",x1,x2,x3,x4,x5);
// }
// if(b / a == c / b&&c / b == d / c && d / c == e / d && (b / a)!= 1){//判断等比数列。把公比为1除去,当作等差数列,此处需特别注意
// x = b / a ;
// x1 = e * x;
// x2 = x1 * x;
// x3 = x2 * x;
// x4 = x3 * x;
// x5 = x4 * x;
// printf("%d %d %d %d %d\n",x1,x2,x3,x4,x5);
// }
// if(a + b == c && d == c + b && e == c + d){
// x1 = d + e;
// x2 = e + x1;
// x3 = x1 + x2;
// x4 = x2 + x3;
// x5 = x3 + x4;
// printf("%d %d %d %d %d\n",x1,x2,x3,x4,x5);
// }
// }
// return 0;
//}
//
BP: 2^x mod n = 1
给你一个正整数n,要求你找到最小的x(x>0)满足2^x mod n = 1。
输入
输入包含多组测试数据。每行一个正整数,代表n的值。
输出
如果最小的x存在,则输出2^x mod n = 1(注意x和n要用具体的值代替),否则输出2^? mod n = 1。
样例输入 Copy
2
5
样例输出 Copy
2^? mod 2 = 1
2^4 mod 5 = 1
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// int n = 0;
// while(cin >> n){
// if(n % 2 == 0 || n == 1){
// printf("2^? mod %d = 1\n",n);
// }else{
// int s = 2;
// for(int i = 2; i > 0; i++){
// s *= 2;
// if(s % n == 1){
// printf("2^%d mod %d = 1\n",i,n);
// break;
// }
//// s %= n;//此处可以节省运算时间,防止超过时限,如n = 5, s = 8;
// //多一步运算s % n = 3,3*2 = 6,6%5的计算度要明显低于未经过s%n即8*2=16,16%5的,尽管两者结果都是1
// }
// }
// }
// return 0;
//}
BQ: ACM CLUB晚会
ACM CLUB的会员越来越多了,为此,ACM CLUB想为会员们准备一个晚会,晚会节目由会员们表演。消息一出,报名要表演节目的会员很多,多达N个,但是由于场地和时间有限,只能从这N个人中选M个,请问一共有多少种选择方法?
输入
数据的第一行是一个正整数T,接下来有T组数据,每组数据占一行。
每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)。
输出
每组数据输出一个整数,每个输出占一行。
样例输入 Copy
5
3 2
5 3
4 4
3 6
8 0
样例输出 Copy
3
10
1
0
1
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// int t = 0;
// scanf("%d",&t);
// int m = 0,n = 0;
// while(t--){
// scanf("%d %d",&m,&n);
// if(m >= n){
// double s1 = 1,s2 = 1;
// for(int i = m - n + 1; i <= m; i++){
// s1 *= i;
//// cout << s1 << endl;
// }
// for(int j = 1; j <= n; j++){
// s2 *= j;
//// cout << s2 << endl;
// }
// printf("%.lf\n",s1 / s2);
// }else{
// printf("0\n");
// }
//
//
// }
// return 0;
//}
BR: 笨鸟先飞
多多是一只小菜鸟,都说笨鸟先飞,多多也想来个菜鸟先飞。于是它从0点出发,一开始的飞行速度为1m/s,每过一个单位时间多多的飞行速度比上一个单位时间的飞行速度快2m/s,问n(0<n<10^5)个单位时间之后多多飞了多远?
输入
先输入一个整数T表示有几组数据。每组数据输入一个n,表示多多飞行的时间。
输出
输出多多飞行了多远,因为数字很大,所以对10000取模。
样例输入 Copy
2
1
2
样例输出 Copy
1
4
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// int t = 0;
// scanf("%d",&t);
// while(t--){
// long n;//尽量在计算时保证计算对象变量都是同一类型(全是int或者全是long),不要int、long混合计算
// long s; //此处使用long类型定义变量防止超出int型最大存储字节数
// scanf("%ld",&n);
//// cout << n <<endl;
// s = (n * n) % 10000;
//// cout << s <<endl;
// printf("%ld\n",s);
// }
// return 0;
//}
BS: 猜数字
现在,我想让你猜一个数字x(1000<=x<=9999),它满足以下要求:
(1)x % a = 0;
(2)(x+1) % b = 0;
(3)(x+2) % c = 0;
其中1<=a,b,c<=100。
给你a,b,c的值,你能告诉我x是多少吗?
输入
输入的第一行为c,表示测试样例的个数。接下来的c行每行包括a,b,c三个整数。
输出
对于每一个测试样例,输出所求的x,如果x不存在,则输出Impossible。
样例输入 Copy
2
44 38 49
25 56 3
样例输出 Copy
Impossible
2575
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// int t = 0;
// int a,b,c,i;
// scanf("%d",&t);
// while(t--){
// scanf("%d %d %d",&a,&b,&c);
// for(i = 1000; i <= 9999; i++){
// if(i % a == 0 && (i + 1) % b == 0 && (i + 2) % c == 0){
// break;
// }
// }
// if(i > 9999){
// printf("Impossible\n");
// }else{
// printf("%d\n",i);
// }
//
// }
// return 0;
//}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。