BJ: 分数矩阵

咱们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母一一递增。
申请出这个矩阵的总和。
输出
输出蕴含多组测试数据。每行给定整数N(N<50000),示意矩阵为N*N。当N=0时,输出完结。
输入
输入答案,后果保留2位小数。
样例输出 Copy
1
2
3
4
0
样例输入 Copy
1.00
3.00
5.67
8.83

//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//using namespace std;////int main(){//    int n = 0;//    while(scanf("%d",&n) != EOF){//        if( n == 0){//            break;//        }//        double sum = n;//        for(int i = 2; i <= n; i++){//            sum += 2 * (1.00 / i) * (n - i + 1);//        }//        printf("%.2f\n",sum);//    }//    return 0;//}

BK: 计算并集

给你两个汇合,要求{A} + {B}。
注:同一个汇合中不会有两个雷同的元素。
输出
每组输出数据分为三行,第一行有两个数字n,m(0<n,m<=10000),别离示意汇合A和汇合B的元素个数。后两行别离示意汇合A和汇合B。每个元素为不超出int范畴的整数,每个元素之间有一个空格隔开。
输入
针对每组数据输入一行数据,示意合并后的汇合,要求从小到大输入,每个元素之间有一个空格隔开。
样例输出 Copy
1 2
1
2 3
1 2
1
1 2
样例输入 Copy
1 2 3
1 2

//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//using namespace std;////int main(){//    int m = 0,n = 0,num = 0,i,j;//    int a[10000],b[10000],b1[10000],c[20000];//    while(scanf("%d %d",&m,&n) != EOF){//        for(i = 0; i < m; i++){//            scanf("%d",&a[i]);//        }//        for(i = 0; i < n; i++){//            scanf("%d",&b[i]);//            b1[i] = 1;//        }  //        for(i = 0; i < m; i++){//            for(j = 0; j < n; j++){//                if(a[i] == b[j]){ //                    b1[j] = 0;//给反复的flag一下//                }//            }//        }//        num = 0;//        for(i = 0; i < m; i++){//            c[num++] = a[i];////        }//        for(i = 0; i < n; i++){//            if(b1[i]){//判断一下是否被标记为0,若为0即不要将他放到c[]数组中 //                c[num++] = b[i];// //            }//        }//        sort(c,c + num);//#include<algorithm>头文件蕴含函数//        for(i = 0; i < num; i++){//            if(i < num - 1){//此处最初一个字符之外的须要输入空格, //                printf("%d ",c[i]);    //            }else{//                printf("%d\n",c[i]);//最初一个字符不须要输入空格//            }    //        }//    //    }//    return 0;//}

#### BL: 判断三角形形态
给你三角形的三条边,你能通知我它是哪种三角形吗?
如果是直角三角形,请输入“good”。如果是等腰三角形,请输入“perfect”。否则,请输入“just a triangle”。
题目保障输出数据非法。
输出
输出的第一行为一个整数t,示意测试样例的数量。
每组样例蕴含了三个整数a,b,c,代表了三角形的三条边的长度。(0<a,b,c<300)
输入
对于每组样例,输入后果,每组后果占一行。
样例输出 Copy
4
3 4 5
2 2 3
1 4 4
4 6 3
样例输入 Copy
good
perfect
perfect
just a triangle

//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//using namespace std;////int main(){//    int n = 0;//    scanf("%d",&n);//    int a,b,c;//    while(n--){//        scanf("%d %d %d",&a,&b,&c);//        if(a == b || b == c ||a == c || (a == b == c)){//            printf("perfect\n");//        }else if(a * a + b * b == c * c || c * c + b * b == a * a || c * c + a * a == b * b){//            printf("good\n");//        }else{//            printf("just a triangle\n");//        }//    }//    return 0;//}

BM: 寻找第二小的数

求n个整数中第二小的数。
雷同的整数看成一个数。比方,有5个数别离是1,1,3,4,5,那么第二小的数就是3。
输出
输出蕴含多组测试数据。输出的第一行是一个整数C,示意有C组测试数据;
每组测试数据的第一行是一个整数n,示意本组测试数据有n个整数(2<=n<=10),接着一行是n个整数(每个数均小于100)。
输入
为每组测试数据输入第二小的整数,如果不存在第二小的整数则输入“NO”,每组输入占一行。
样例输出 Copy
3
2
1 2
5
1 1 3 4 5
3
1 1 1
样例输入 Copy
2
3
NO

//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//using namespace std;////int main(){//    int t = 0;//    int a[10000];//    scanf("%d",&t);//    while(t--){//        int n = 0,i;//        scanf("%d",&n);//        for(int i = 0; i < n; i++){//            scanf("%d",&a[i]);//        }//        sort(a,a + n);//        for(i = 0; i < n - 1; i++){//            if(a[i] != a[i + 1]){//                printf("%d\n",a[i + 1]);//                break;    //            }//        }//        if(i == n - 1){//            printf("NO\n");//        }//    }//    return 0;//}

BN: 验证角谷猜测

数论中有许多猜测尚未解决,其中有一个被称为“角谷猜测”的问题,该问题在五、六十年代的美国多个驰名高校中曾风行一时,这个问题是这样形容的:任何一个大于一的自然数,如果是奇数,则乘以三再加一;如果是偶数,则除以二;得出的后果持续依照后面的规定进行运算,最初必然失去一。当初请你编写一个程序验证他的正确性。
输出
题目蕴含多组测试数据,第一行为测试数据组数N,接着是N行的正整数。
输入
输入验证“角谷猜测”过程中的奇数,最初失去的1不必输入;每个测试题输入一行;每行中只有两个输入之间能力有一个空格;如果没有这样的输入,则输入:No number can be output !。
样例输出 Copy
4
5
9
16
11
样例输入 Copy
5
9 7 11 17 13 5
No number can be output !
11 17 13 5

//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//using namespace std;////int main(){//    int t = 0;//    int a[10000];//    scanf("%d",&t);//    while(t--){//        int n = 0,k = 0;//k值记录失去的奇数的个数 //        scanf("%d",&n);//        while(n!= 1){//            if(n % 2){//                a[k++] = n;//含原始的输出值,k每次计算后为奇数则k++ //                n = 3 * n + 1;//            }else{//                n /= 2;//            }//        }//        if(k){//如果k值为0,证实除了原始数据之外,没有经计算后失去的为奇数的后果,则将不会执行if语句 //            for(int i = 0; i < k; i++){//                if(i == k - 1){//                    printf("%d\n",a[i]);//最初一个值输入后须要换行 //                }else{//                    printf("%d ",a[i]);//其余值输入须要空一格 //                }//            }//        }else{// 如果k为0(即除了原始数据没有失去奇数),则执行上面的语句,如果k非零if均为真,失常输入 //            printf("No number can be output !\n");//        }    //    }//    return 0;//}