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;
//} 


沐小轲
9 声望0 粉丝

C++初学者