TPA部分试题

上传人:gbs****77 文档编号:10742166 上传时间:2020-04-14 格式:DOCX 页数:48 大小:146.90KB
返回 下载 相关 举报
TPA部分试题_第1页
第1页 / 共48页
TPA部分试题_第2页
第2页 / 共48页
TPA部分试题_第3页
第3页 / 共48页
点击查看更多>>
资源描述
算法与程序设计PTA习题集第4周本题目要求计算下列分段函数f(x)的值:输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。输入样例1:10输出样例1:f(10.0) = 0.1输入样例2:0输出样例2:f(0.0) = 0.0#includeint main()float x,result;scanf(%f,&x);if (x=0)result=0;elseresult=1.0/x;printf(f(%.1f) = %.1f,x,result);return 0;编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。输入格式:输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。输出格式:在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。输入样例:21:11输出样例:9:11 PM#includeint main()int a,b;scanf(%d:%d,&a,&b);if(a12)printf(%d:%d,a-12,b);if(a=12)printf(%d:%d,a,b);if(a12)printf(%d:%d AM,a,b);elseprintf( PM,a,b); return 0;给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出六个100,100范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。 输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。输入样例1:4 5 6 9 7 8输出样例1:L = 10.13, A = 3.00输入样例2:4 6 8 12 12 18输出样例2:Impossible#includeint main()int a,b,c;scanf(%d %d %d,&a,&b,&c);if(a+bc)&(b+ca)&(a+cb)printf(YES); elseprintf(NO); return 0;输入一个年份,判断其是否为闰年,若是闰年输出“yes”的信息,否则输出“no”的信息。输入格式:直接输入一个4位数年份,没有其它任何附加字符。输出格式:直接输出“yes”或“no”,没有其它任何附加字符。输入样例:1900 输出样例:no输入样例:2000 输出样例:yes输入样例:1904 输出样例:yes#includeint main()int a;scanf(%d,&a);if(a%4=0&a%100!=0|a%400=0)printf(yesn);elseprintf(non);return 0;输入三个整数x,y,z,请把这三个数由小到大输出。输入格式:在一行中直接输入3个整数,之间各用一个空格间隔。输出格式:在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。输入样例:2 1 3 输出样例:x=1,y=2,z=3#includeint main()int x,y,z,temp;scanf(%d %d %d,&x,&y,&z,&temp); if(xy)temp=x,x=y,y=temp; if(xz)temp=x,x=z,z=temp; if(yz)temp=y,y=z,z=temp;printf(x=%d,y=%d,z=%d,x,y,z); return 0;第5周本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。输入格式:输入在一行中给出一个整数的百分制成绩。 输出格式:在一行中输出对应的五分制成绩。输入样例:90 输出样例:A#includeint main()int a,ch;scanf(%d,&a);if(a90|a=90)ch=A;else if(a80|a=80)ch=B;else if(a70|a=70)ch=C;else if(a60|a=60)ch=D;elsech=E;printf(%c,ch);return 0;中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34#includeint main()int N;scanf(%d,&N);if(N%5=4|N%5=0)printf(Drying in day %d,N);elseprintf(Fishing in day %d,N);return 0;本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。输入样例1:-7 / 2 输出样例1:-3输入样例2:3 & 6 输出样例2:ERROR#include int main() int x,y; char ch; scanf(%d %c %d, &x, &ch, &y); switch(ch) case +: printf(%dn,x+y); break; case -: printf(%dn, x-y); break; case *: printf(%dn, x*y); break; case /: printf(%dn, x/y); break; case %: printf(%dn, x%y); break; default: printf(ERRORn); break; return 0; 股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low。如果CloseOpen,表示为“R-Hollow”(即“空心红蜡烛”);如果Open等于Close,则为“R-Cross”(即“十字红蜡烛”)。如果Low比Open和Close低,称为“Lower Shadow”(即“有下影线”),如果High比Open和Close高,称为“Upper Shadow”(即“有上影线”)。请编程序,根据给定的四个价格组合,判断当日的蜡烛是一根什么样的蜡烛。输入格式:输入在一行中给出4个正实数,分别对应Open、High、Low、Close,其间以空格分隔。输出格式:在一行中输出日K蜡烛的类型。如果有上、下影线,则在类型后加上with 影线类型。如果两种影线都有,则输出with Lower Shadow and Upper Shadow。输入样例1:5.110 5.250 5.100 5.105输出样例1:BW-Solid with Lower Shadow and Upper Shadow输入样例2:5.110 5.110 5.110 5.110输出样例2:R-Cross输入样例3:5.110 5.125 5.112 5.126输出样例3:R-Hollow#include #include int main() double open, high, low, close;scanf(%lf%lf%lf%lf, &open, &high, &low, &close);if(close open)printf(R-Hollow);else if(fabs(close - open) = 0)printf(R-Cross);if(low open & low open & high close)printf( with Lower Shadow and Upper Shadown);else if(low open & low open & high close)printf( with Upper Shadown);return 0;本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。 输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:61输入样例2:2000/03/02输出样例2:62#include int main() int day,month,year; scanf(%d/%d/%d,&year,&month,&day); int i; int sum; sum=day; for(i=1;imonth;i+) switch(i) case 1:sum+=31;break; case 3:sum+=31;break; case 5:sum+=31;break; case 7:sum+=31;break; case 8:sum+=31;break; case 10:sum+=31;break; case 12:sum+=31;break; case 4:sum+=30;break; case 6:sum+=30;break; case 9:sum+=30;break; case 11:sum+=30;break; case 2: if(year%4=0&year%100!=0)|(year%400=0) sum+=29; else sum+=28; printf(%dn,sum); return 0; 第6周三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2 输出样例:C#includeint main() int a,b,c; char ch; scanf(%d %d %d,&a,&b,&c); if(a=b) ch=C; else if(a=c)ch=B; else ch=A; printf(%cn,ch); return 0;某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。输入格式:输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。输出格式:在一行输出该员工的周薪,精确到小数点后2位。输入样例1:5 40 输出样例1:2000.00输入样例2:3 50 输出样例2:1650.00#include int main() int time,year; double money; scanf(%d%d,&year,&time); if(year=5) if(time=40) money=time*50; elsemoney=2000+(time-40)*50*1.5; else if(time=40) money=time*30; elsemoney=1200+(time-40)*30*1.5; printf(%.2lfn,money); return 0; 输入三个实数,代表三条线段的长度。判断这三条线段组成的三角形是什么类型:等边(equilateral triangle)、等腰(isosceles triangle)、不等边(common triangle)或不能构成三角形(not a triangle)。输入格式:输入三条线段的长度,输入保证所有数据均大于0。输出格式:输出三角形的类型:等边(equilateral triangle)、等腰(isosceles triangle)、不等边(common triangle)或不能构成三角形(not a triangle)。输入样例:3 3 3 # 输出样例:equilateral triangle#include int main() float a,b,c; scanf(%f %f %f,&a,&b,&c); if (a + b = c | a + c = b | b + c = a)printf(not a trianglen); else if (a = b & b = c) printf(equilateral trianglen); else if (a = b | b = c | a = c) printf(isosceles trianglen); else printf(common trianglen); return 0;有一分段函数如下:根据输入的x值,计算对应的y值。输入格式:输入x。 输出格式:输出y的值,保留两位小数。#include#includeint main()double x,y; scanf(%lf,&x); if(x=-1&x1&x10) y=5*x+3*log10(2*x*x-1)-13; printf(%.2f,y); return 0;第7周本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式:在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。输入样例:aZ &09 Az 输出样例:letter = 4, blank = 3, digit = 2, other = 1#includeint main()int l=0,b=0,d=0,o=0,i=1;char ch;scanf(%c,&ch);while(i=a&ch=A&ch=0&ch=9)d+;else if(ch= |ch=n)b+;elseo+;scanf(%c,&ch);i+;printf(letter = %d, blank = %d, digit = %d, other = %d,l,b,d,o);return 0;本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数nnn,之后是nnn个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出nnn个整数中的最小值。输入样例:4 -2 -123 100 0输出样例:min = -123#includeint main()int n,x,y,i=1,min;scanf(%d%d,&n,&x);min=x;while(iy)min=y;elsemin=min;i+;printf(min = %dn,min);return 0;本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1输出样例:116#include int main()int n,sum=0;scanf(%d,&n);while(n0)if(n%2=0)sum=sum;elsesum=sum+n;scanf(%d,&n);printf(%dn,sum);return 0;输入若干学生成绩,以负数结束输入。计算所有学生的平均成绩并统计成绩在80到90分(不含90)之间的人数。输入格式:在一行输入几个百分制实型成绩,数据之间以一个空格间隔。输入负数结束输入。输出格式:在一行中按照“ave=平均分,n=人数”的顺序输出结果,其中平均分要求保留两位小数,人数是正整数。输入样例:58 89 84 55 -1 输出样例:ave=71.50,n=2#includeint main() int x,n=0,sum=0,i=0; scanf(%d,&x); while(x=0) i+; if(x=80&x90) n=n+1; sum=sum+x; scanf(%d,&x); printf(ave=%.2f,n=%dn,sum*1.0/i,n); return 0;对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过109109109的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。输入样例:321 输出样例:3 6#includeint main()int n,x,i=0,sum=0;scanf(%d,&n);while(n!=0)sum=sum+n%10;n=n/10;i+;printf(%d %dn,i,sum);return 0;第8周以下程序统计输入的一行字符中字母、数字、空格、其它字符的个数(行末以换行符结束,最后的换行符不统计在内)。例如,输入的一行字符为aB 3*则字母有2个,数字有1个,空格有1个,其它字符有1个。#include int main() int letters, digits, spaces, others; letters=0,digits=0,spaces=0,others=0; char ch;while(ch=getchar()!=n) if(ch=a&ch=A&ch=0&ch=9) digits+; else if(ch= |ch=n) spaces+; else others+; printf(字母、数字、空格、其它字符分别有:%d %d %d %d 个n,letters,digits,spaces,others);自然常数e可以用级数1+1/1!+1/2!+1/n!来近似计算。本题要求对给定的非负整数n,求该级数的前n项和。输入格式:输入第一行中给出非负整数n(1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10输出样例:2.71828180#includeint main()int n,i=1;double sum=1,a=1;scanf(%d,&n);while(i=n)a=a*i;sum=sum+1/a;i+;printf(%.8f,sum);return 0;一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1N10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3 输出样例:10#include int main() int N,i; scanf(%d,&N); int sum=1; for(i=0;iN-1;i+) sum=(sum+1)*2; printf(%dn,sum); return 0; 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中100AB100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8输出样例: -3 -2 -1 0 1 2 3 4 5 6 7 8Sum = 30#include int main() int a,b,i,sum=0,n=0; scanf(%d%d,&a,&b); for(i=a;i=3 & n=7),它的每个位上的数字n次幂之和等于本身。例如,3位数153是水仙花,各位数字的立方和13+53+33=153。 要求:输出所有位数为3的水仙花数。输入格式:无 输出格式:位数为3的所有水仙花数,每行一个。输入样例:无输出样例:153#include int main() int i,a,b,c; for(i=100;i1000;i+) a=i/100; b=(i/10)%10; c=i%10; if(a*a*a+b*b*b+c*c*c)=i) printf(%dn,i); return 0; 对于给定的正整数N,需要你计算S=1!+2!+3!+.+N!。输入格式:输入在一行中给出一个不超过10的正整数N。输出格式:在一行中输出S的值。输入样例:3 输出样例:9#includeint main()int n,i=1,a=1,sum=0;scanf(%d,&n);while(i=n)a=a*i;sum=sum+a;i+;printf(%d,sum);return 0;第9周本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292 输出样例:73 2044#includeint main()int m,n,i,j;scanf(%d %d,&m,&n);for(i=m;i=1;i-)if(m%i=0&n%i=0)break;for(j=m;j=m*n;j+)if(j%m=0&j%n=0)break;printf(%d %d,i,j);一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30 输出样例:9#includeint main()int N,i,a,b,c;scanf(%d,&N);a=1,b=0,i=1;if(N=a)printf(%dn,a);else+i;c=a+b;while(cN)+i;b=a;a=c;c=a+b;printf(%dn,i); 所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(0mn10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + . + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。输入样例:1 30输出样例:1 = 16 = 1 + 2 + 328 = 1 + 2 + 4 + 7 + 14#includeint main()int m,n,i,j,sum;scanf(%d%d,&m,&n);for(i=m;i=n;i+)/判断i是否为完数sum=1;for(j=2;j=i/2;j+) if(i%j=0) sum=sum+j; if(sum=i)printf(%d = 1,i);for(j=2;j=i/2;j+)if(i%j=0)printf( + %d,j);printf(n);return 0;下面是一个完整的下三角九九口诀表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。输入格式:输入在一行中给出一个正整数N(lN9)。输出格式:输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。输入样例:4输出样例:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16#include int main() int i,j,n;scanf(%d,&n);for(i=1;i=n;+i) for(j=1;j=i;+j) printf(%d*%d=%-4d,j,i,i*j);printf(n);return 0;输出斐波那契(Fibonacci)数列(1,1,2,3,5,8,13)的前20项输出格式:每个数输出占8列。输出样例:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597#includeint main()int i,f1,f2,f3;f1=1;f2=1;printf(%8d%8d,f1,f2);for(i=3;i=20;i+)f3=f1+f2;f1=f2;f2=f3;printf(%8d,f3);if(i%20=0)putchar(n);return 0;第10周本题要求对两个整数a和b,输出其中较大的数。函数接口定义:int max( int a, int b );其中a和b是用户传入的参数,函数返回的是两者中较大的数。输入样例:-5 8 输出样例:max = 8#includeint max(int x, int y) int z; if (xy) z=x; else z=y; return(z);int main() int a,b,c;c=max(a,b); scanf(%d %d, &a, &b); printf(max = %dn, max(a, b); return 0;本题要求实现一个计算两个数的最大公约数的简单函数。函数接口定义:int gcd( int x, int y );其中x和y是两个正整数,函数gcd应返回这两个数的最大公约数。输入样例:32 72 输出样例:8#includeint gcd(int x,int y)int i;for(i=y;i=1;i-)if(x%i=0&y%i=0)return i; int main()int a,b;scanf(%d%d,&a,&b);printf(%d,gcd(a,b); return 0;本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+10!的值。函数接口定义:double fact( int n );其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。输入样例:本题没有输入。输出样例:1!+2!+.+10! = 4037913.000000#includedouble fact( int n )int i,a,sum;while(i=n)a=a*i; sum=sum+a;i+;return i;int main() int i; double sum; sum = 0; for(i = 1; i = 10; i+) sum = sum + fact(i); printf(1!+2!+.+10! = %fn, sum); return 0;fun函数的功能是:找出大于m的最小素数,并将其作为函数值返回。函数接口定义:int fun( int m);函数fun中m是用户传入的参数,函数fun的功能是找出大于m的最小素数,并将其作为函数值返回。输入样例:10输出样例:11#include int fun( int m)int i,j,fun;for(i=m+1;im;i+)for(j=2;ji;j+)if(i%j!=0)fun=i;return fun;int main() int n; scanf(%d,&n); printf(%dn,fun(n); return 0;编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。输入格式:在一行中给出1个字符。输出格式:对于给定输入的字符,输出判断结果yes或no。输入样例: 6 输出样例: yes输入样例: H 输出样例: no#includeint s( char a)int s;if(a=0&a=9) s=1;else s=0;return s;int main() char b; int c; scanf(%ch,&b); c=s(b); if(c=1) printf(yesn); else printf(non); return 0; 编写函数,计算下面分段函数的值。输入格式:输入一个实数x的值输出格式:输出y的结果值输入样例:0输出样例:y=-1.000000输入样例:3.5输出样例:y=-8.619337#include#includedouble hanshu( double x )double t;if(x=-2)t=-exp(2*x+1)+3;if(x-2)t=2*x-1;if(x3)t=2*log10(3*x+5)-11;return t;int main()double x;scanf(%lf,&x);printf(y=%.6lf,hanshu(x);return 0;第11周本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。函数接口定义:int Count_Digit ( const int N, const int D );其中N和D都是用户传入的参数。N的值不超过int的范围;D是0, 9区间内的个位数。函数须返回N中D出现的次数。输入样例:-21252 2输出样例:3#include int Count_Digit ( const int N, const int D );int main() int N, D; scanf(%d %d, &N, &D); printf(%dn, Count_Digit(N, D); return 0;int Count_Digit ( const int N, const int D ) int i=0,s=N; if(N0) if(s%10=D) i+; s=s/10; return i; 本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+.+n! 的值。函数接口定义:double fact( int n );double factsum( int n );函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+.+n! 的值。题目保证输入输出在双精度范围内。输入样例1:10输出样例1:fact(10) = 3628800sum = 4037913输入样例2:0输出样例2:fact(0) = 1sum = 0#include double fact( int n );double factsum( int n );int main() int n; scanf(%d,&n); printf(fact(%d) = %.0fn, n, fact(n); printf(sum = %.0fn, factsum(n);
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!