




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1054 平方数Description描述给你一个整数集合A(无重复元素),如果x,y都属于A,且y=x*x,那么组成一个数对,请找出这个集合中满足条件的数对的个数。比如说集合A=2,3,4,则只有4=2*2,则答案为1。输入每个样例占2行,第一行为一个非负整数n,n=1000,为集合中元素的个数,如果n为0则输入结束。第二行为n个整数,为集合的元素,所有的元素为非负整数,且=100,000,000,两个整数之间有一个空格隔开。输出每行输出一个样例的结果。Sample Input 32 3 453 36 5 9 60Sample Output 12#include #include #incl
2、ude int main() int n, i, i1, i2, x, y, s, str1001; while (scanf(%d, &n)=1&n) s=0; for (i=0;in;i+) scanf(%d , &stri); for (i1=0;i1n;i1+) x=stri1*stri1; for (i2=0;i2n;i2+) y=stri2; if (x=y) s+; printf(%dn, s); return 0;1155 整数分类Description按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到
3、x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。输入每行输入一个非负整数n,n10500,n为0时结束。输出每行输出对应整数的分类数。Sample Input 24390Sample Output 63#include#includeint main() char str501; int i, sum, a; gets (str); while (str0!=0) for (i=0,sum=0;i=10) a=sum; sum=0; while (a) sum+=a%10; a=a/10; printf(%dn,sum); gets
4、(str); return 0;1157 XTU方阵DescriptioneXtreme Talent University(XTU)需要为他们的校名打印一些特别的图形,为了美观,他们选择了方阵。现在他们需要你的帮助,帮他把这些方阵打印出来。如果方阵一边只由一个XTU的校名组成,则方阵为:XTUXTUXTU输入每个样例占一行,每行是一个整数n(0=n=10),表示一行需要使用多少个校名,n为0是输入结束标志。输出对于每个样例,先输出样例序号,比如说第一个样例输出“Case 1:”,换行再输出对应样例的方阵,每个方阵后有一个空行。Sample Input 120Sample Output Cas
5、e 1:XTUXTUXTUCase 2:XTUXTUXTUXTUXTUXTUXTUXTUXTUXTUXTUXTU#include main() char a4=X,T,U; int i, n, k, t, h; i=1; while (scanf(%d, &n)=1&n) printf(Case %d:n, i+); for (h=0;hn;h+) for (t=0;t3;t+) for (k=0;kn;k+) printf(%s, a); printf(n); printf(n); 1058 青蛙王子Description一个王子被巫师诅咒,变成了一只青蛙。500年后的一天,青蛙王子碰到了一
6、个仙女,仙女告诉他,如果他能通过一个简单的测试,她就能帮他解除诅咒。测试是这样子的,仙女要青蛙王子在一条直线上跳跃(青蛙王子最开始站在坐标为0的地方),但只能按照她给定的两种长度跳跃(假设这两种长度王子都能跳到),可以往前或者往后跳,如果能达到指定的地点,那么就通过测试;仙女给定的方式有多种,但有些是不可能满足达到指定地点的。请你帮帮可怜的青蛙王子,寻找出那些可以完成测试的跳跃方式。输入每个样例占一行,为3个整数,都可以用一个unsigned int表示。前两个表示可以跳跃的长度,最后一个表示需要达到的地点的坐标。如果三个数为0,表示输入结束。输出每行输出一个样例的结果,如果可以到达指定的地点
7、,输出Yes,否则输出No。Sample Input 2 5 93 7 24 8 30 0 0Sample Output YesYesNo#include main() unsigned int a, b, c; int e, k; for (k=1;k+) scanf(%u %u %u, &a, &b, &c); if(a=0&b=0&c=0) break; if(a=0&b=0) printf(Non); else if(ab) e=a;a=b;b=e; b=b%a; if(c%a=0) printf(Yesn); else printf(Non); 1059 有多少个1?Descript
8、ion计算机中存储的整数都是按补码的型式,一个32位有符号整数的补码的定义为:如果x=0,则x的补码等于x的二进制表示;如果x0,那么x的补码为232+x的二进制表示。请根据给定的整数,求出它的补码包含有多少位为1。输入每行一个样例,为一个整数(可以用int表示)。输出每行输出一个对应样例的结果。Sample Input 10-1Sample Output 1032#include#define sum 4294967296int main() long long int i, n; int c=0; while(scanf(%I64d,&i)!=EOF) if(i0) i=i+sum; wh
9、ile(i!=0) n=i%2; i=i/2; if(n=1) c+; printf(%dn,c); c = 0; return 0; 1062 大小写转换Description接收一个字母,如果是小写,则将其转换成大写;如果是大写,就将其转换成小写。Sample Input bSample Output B#include main() char ch; scanf(%c, &ch); if (ch=97&ch=122) ch = ch - 32; printf(%c, ch); else ch = ch + 32; printf(%c, ch); 1063 输入输出1Description
10、请输入一个非负整数,输出其10进制和16进制(使用A-F)的值,中间用逗号隔开,不要输出换行.Sample Input 15Sample Output 15,F#include main() int a; scanf(%d, &a); printf(%d,%X, a, a);1064 输入输出2Description读取一个整数和一个字符并输出它们,中间用逗号隔开,不要输出回车Sample Input 234 HSample Output 234,H#include main() int a; char b; scanf(%d %c, &a,&b); printf(%d,%c, a,b);10
11、65 io3Description1. 读取一个单精度浮点数并输出它(保留小数点后3位)Sample Input 1.23Sample Output 1.230#include main() float a; scanf(%f, &a); printf(%.3f, a);1066 io4Description1. 读取一个双精度浮点数,并输出它(保留小数点后8位),无须输出换行Sample Input 1.098765432Sample Output 1.09876543#include main() double a; scanf(%lf, &a); printf(%.8lf, a);106
12、7 io5Description输入一个字符,按格式输出这个字符及它的ASCII码Sample Input ASample Output The ASCII of A is 65.#include main() char a; scanf(%c, &a); printf(The ASCII of %c is %d., a, a);1068 if语句1Description输入一个整数,如果整数在90和100之间,那么输出A;否则输出B。Sample Input 90Sample Output A#include main() int a; scanf(%d, &a); if(90 = a )&
13、( a = 100) printf(A); else printf(B); 1069 if语句2Description输入整数n,如果n是偶数,则输出“n is even.”,否则输出n is odd.Sample Input 6Sample Output 6 is even.#include main() int n, a; scanf(%d, &n); a = n%2; if(a = 0) printf(%d is even., n); else printf(%d is odd., n); 1070 if3Description输入一个三位的整数,如果它有且仅有两位数码相同,那么就输出Y
14、es,否则输出NoSample Input 112Sample Output Yes#include #include main() int a, b, c, d; (100 = a) & (a = 999); scanf(%d, &a); b = a / 100; c = (a - (a%10)/10)%10; d = a%10; if(b = c & d!=b)|(b = d & c!=b)|(c = d & b!=c) printf(Yes); else printf(No); 1071 if4Description输入三角形的三条边a,b,c;如果构成三角形那么就计算三角形的面积并输出
15、,保留2位小数,否则输出“Not a triangle.”Sample Input 3 5 4Sample Output 6.00#include #include main() int a, b, c, d; (100 = a) & (a = 999); scanf(%d, &a); b = a / 100; c = (a - (a%10)/10)%10; d = a%10; if(b = c & d!=b)|(b = d & c!=b)|(c = d & b!=c) printf(Yes); else printf(No); 1072 switchDescription计算下面函数的值y=
16、cos(x+3.0) 当0=x10;y=(cos(x+7.5)2 当10=x20;y=(cos(x+4.0)4 当20=x30;表示幂运算,如x2表示x的平方如果x不在定义域内,输出“Not define”,否则输出y,保留5位小数Sample Input 40Sample Output Not define#include #include main() float x, a, b, c; scanf(%f, &x); a = cos(x + 3.0); b = pow(cos(x +7.5),2); c = pow(cos(x + 4.0),4); if (0 = x & x 10) pr
17、intf(%.5f, a); else if (10 = x & x 20) printf(%.5f, b); else if (20 = x & x 30) printf(%.5f, c); else printf(Not define); 1073 最大最小数Description输入3个互不相等的整数a,b,c,请输出最大的和最小的数,中间用一个空格隔开。Sample Input 1 2 3Sample Output 3 1#include main() int a, b, c, max, min; scanf(%d %d %d, &a, &b, &c); if (a b) max =
18、a, min = b; else max = b, min = a; if (c max) max = c; if (c min) min = c; printf(%d %d, max, min); 1074 求和Description第一行是一个整数n(1=n=1000),表示有多少个数求和;第二行是n个整数,每个整数都在-105到105之间,每个整数之间用空格隔开。输出和的值(不要输出回车)Sample Input 51 2 3 4 5Sample Output 15#include#includemain() int n,x,c,sum; sum=0,c=0; scanf(%d,&n);
19、 for(x=1;x=n;x+) scanf(%d,&c); sum=sum+c; printf(%d,sum);1075 求最小公倍数Description有多个测试用例,每行两个正整数x,y,保证x*y不超过231-1。如果x与y都为0,则输入结束。每行输出一个测试用例的结果,即x与y的最小公倍数。(最后一行有回车)Sample Input 4 53 60 0Sample Output 206#includemain() int i,a,b,q,w; for(i=1;i+) scanf(%d %d,&a,&b); if(a=0|b=0) break; w=a*b; if(ba) q=a,a
20、=b,a=q; q=a%b; while(q!=0) a=b,b=q; q=a%b; printf(%dn,w/b); 1076 素数Description对于大于1的自然数,如果n为素数,那么所有大于1且不大于n的平方根的自然数都不能整除n,反之亦然。所以我们可以通过测试来确定n是否为素数。现在给出n,要你求是否为素数,是输出Yes,否则输出No每行一个正整数n,n=232-1,如果n为0,则输入结束。判断n是否为素数每行输出一个用例的结果,如果是输出Yes,否则输出“No”Sample Input 234560Sample Output YesYesNoYesNo#include#incl
21、ude main() _int64 x, i, j, k; i=2; while (scanf(%I64d,&x), x!=0) j=sqrt(double)x)+1; k=1; for(i=2;i=j&k!=0;i+) k=x%i; if (i=j | x=1) printf(Non); else printf(Yesn); 1077 数字塔Description有多个输入测试用例,每个用例一行,是一个1-9的整数,输入为0则结束。请输出一个数字塔,若输入是4,则输出的数字塔为: 1 222333334444444因为有多个样例,那么样例需要先输出一行case 样例号:比如第一个样例是3,则
22、输出case 1: 122233333Sample Input 230Sample Output case 1: 1222case 2: 1 22233333#include main() int i, n, k, t, q, a, m; a=0; while (scanf(%d, &n)=1&n) a+; q=n; printf(case %d:n, a); for (i=1;i=n;i+) m=q-1; for (t=0;tm;t+) printf(%c, 32); for (k=1;k=(2*i-1);k+) printf(%d, i); printf(n); q-; 1078 字母三角
23、形Description输出形如ABCDEDCBAABCDCBA ABCBA ABA A的字母三角形。输入有多个样例,每个样例是一行,每行是一个大写字母。当输入字符是#时结束。样例前需要输出“case 样例号:”。如示例所示。Sample Input CD#Sample Output case 1:ABCBA ABA Acase 2:ABCDCBA ABCBA ABA A#includemain() char c,n,p; int i ,j,k; i=1; while (scanf(%c,&c)&c!=#) printf(case %d:,i+); putchar(n); for (j=0;j
24、=c-A;j+) for (k=0;kj;k+) printf( ); for (n=A;n=A;p-) printf(%c,p); putchar(n); getchar(); 1079 数学计算1Description请计算答案使用浮点输出一行,不要输出多余的零,行尾有回车。C语言使用%g输出#include main() int n; float a; a = 5; n = 0; while(n 3) a = 1 + 1/a; n = n + 1; printf(%gn, a);1080 数学计算2Description请计算答案输出一行,不要输出多余的零,行尾有回车。C语言使用%g输出
25、#include #include main() float a; a = sqrt(3.2 * 3.2) + (4.7 * 4.7); printf(%gn, a);1081 数学计算3Description请计算PI=3.14159265请输出一行,不要输出多余的零,行尾有回车。C语言使用%g输出#include #include main() float a, PI; PI=3.14159265; a = sqrt(1 - cos(PI/3) / 2); printf(%gn, a);1082 数学计算4Description计算PI=3.14159265答案输出一行,不要输出多余的零,
26、行尾有回车。C语言使用%g输出#include #include main() float a, PI; PI=3.14159265; a = pow(sin(PI/4),2) + (sin(PI/4) * cos(PI/4) - pow(cos(PI/4),2); printf(%gn, a);1083 数学计算5Description请计算答案输出一行,不要输出多余的零,行尾有回车。C语言使用%g输出#include #include main() float a; a = (2 * sqrt(5) * (sqrt(6) + sqrt(3) / (6 + 3); printf(%gn, a
27、);1084 三角形的另一边Description已知三角形的两边长a,b,及它们的夹角p(单位度),求三角形的另外一边长。输入一行,a(a0),b(b0),p(180p0)输出一行,另外一边的边长,不要输出多余的零(C语言使用%g输出)。Sample Input 3 4 90Sample Output 5#include #include main()float a,d,e,p,b,PI,c,f,g,h;PI=3.14159265;scanf(%f %f %f,&a,&b,&p);c=p*PI/180;d=pow(a,2);e=pow(b,2);f=cos(c);g=d+e-2*a*b*f;
28、h=pow(g,0.5);printf(%gn,h);1085 求两点间的距离Description已知两点A(xa,ya),B(xb,yb),求其间的距离输入一行四个浮点数,xa,ya,xb,yb输出一行,距离,不要输出多余的零。Sample Input 0 0 3 4Sample Output 5#include #include main() float xa, ya, xb, yb, h; scanf(%f %f %f %f, &xa, &ya, &xb, &yb); h = sqrt(pow(yb - ya,2) + pow(xb - xa,2); printf(%gn, h);10
29、86 分段函数Description已知函数为给定x,请求其函数值输入一行,x输出一行,f(x),不要输出多余的零。Sample Input 0.5Sample Output 0.25#include #include main() float x, a, b, c; scanf(%f, &x); a = 0; b = pow(x,2); c = pow(x,0.5); if (x 0) printf(%gn, a); else if (0=x&x=1) printf(%gn, b); else printf(%gn, c); 1088 N!Description请求N!(N=10000),输
30、出结果对10007取余输入每行一个整数n,遇到-1结束。输出每行一个整数,为对应n的运算结果。Sample Input 12-1Sample Output 12#include int main() int n, i, p; while(1) scanf(%d, &n); if (n=-1) break; p=1; for (i=1; i=n; i+) p=p*i%10007; printf(%dn, p); 1089 质因数分解Description任意一个正整数可以分解成唯一的质因数的乘积,给出正整数,请计算出它的质因数分解式。输入每行一个正整数2=n=108。输出每行输出一个对应结果。使
31、用”表示幂,”*”表示乘,质因子应该按从小到大的顺序输出,如果某一个质因子只有一次,那么就不要输出它的幂。Sample Input2636Sample Output22*322*32#include #include int main() int n; while(scanf(%d,&n)=1) int t=floor(sqrt(n)+0.5); int i,s,p=0; for(i=2;i1&p=1) printf(*%d,n); else if (n1&p=0) printf(%d,n); printf(n); 1090 组合数Description2n=C(n,0)+C(n,1)+C(n
32、,n)。其中表示幂,C(n,x)表示组合数,即C(n,x)=n!/((n-x)!x!)。现在给你n(0=n=33),要你输出2n的组合数之和的表达式输入每行一个整数n,如果n为负数则输入结束。输出每行输出一个表达式,表达式格式形似为2n=C(n,0)+C(n,1)+C(n,n)。Sample Input23-1Sample Output22=1+2+123=1+3+3+1#includemain() long long int n,t,i,i1,C; while (scanf(%I64d,&n),n=0) printf(2%I64d=1,n); for (i=1;i=n;i+) C=1; fo
33、r (t=n,i1=1;i1=i;t-,i1+) C=(C*t)/i1; printf(+%I64d,C); printf(n); 1092 a除b的余数Description输入两个整数a和b,-1,000,000=a=1,000,000,1=b=1,000,000。请输出a除b的非负余数。输入一行两个整数a和b。输出一行,输出a除b的余数。Sample Input 1 2Sample Output 1#includemain() long long int n,t,i,i1,C; while (scanf(%I64d,&n),n=0) printf(2%I64d=1,n); for (i=
34、1;i=n;i+) C=1; for (t=n,i1=1;i1=i;t-,i1+) C=(C*t)/i1; printf(+%I64d,C); printf(n); 1093 百分率Description读取一个浮点数,输出对应的百分率,百分率取整。输入一个浮点数输出一行,输出一个百分率Sample Input 0.566Sample Output 57%#include main() float a, b; scanf(%f, &a); b = a * 100; printf(%.0f%n, b); 1097 排序DescriptionN个整数,将其排序输出。输入第一行是一个整数K(1=K=
35、20),表示有多少个样例,每个样例的第一行是一个整数N(1=N=1,000)和一个字符X,X为A时表示升序排序,为D时为降序排列;第二行为N个整数,每个整数都可以使用int表示,每个之间用一个空格隔开。输出每个样例输出一行,按排序要求输出整数,每个整数之间输出一个空格。(最后一个整数后不要有空格)Sample Input 23 A3 5 24 D2 5 7 3Sample Output 2 3 57 5 3 2#includemain() int k,n,a1001,i,i1,p,m; char x; scanf (%d,&k); while(k-) scanf(%d %c,&n,&x); f
36、or(i=0; in; i+) scanf(%d,&ai); for (i=0; in; i+) for(i1=i+1; i1n; i1+) if (aiai1) m=ai1; ai1=ai; ai=m; if (x=D) for(i=0; i=1; p-) printf(%d ,ap); printf(%dn,ap); 1098 素数个数Description给定两个非负整数a,b,其中0= a,b=1,000,000,请计算这两个数之间有多少个素数。输入第一行是一个整数K(1=K=1000),表示有多少个样例,每个样例占一行,是两个整数a和b,每个整数之间用一个空格隔开。输出每行输出一个样例的结果。Sample Input 22 317 19Sample Output 22#include #include long a1000001;void X() int i,j; for(i=3;i=1000000;i+) if (i%2=0)ai=0; else ai=1; a0=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论