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;
//}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。