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