编写程序,计算s =a + aa + aaa + aaa…aaa 的值,其中 a 是 1 ~ 9 之间的某个数字,n 是一个正整数。例如,当a = 2,n = 5时,s = 2 +22 +222 + 2222 +22222 = 24690。
【提示】如何表示该多项式中的某一项呢?
方法一:如果item 表示当前项且为数值型,则下一项为item * 10 + a。
方法二: 利用字符串的乘法特性,如"2" * 2 的值为"22","2" * 3 的值为"222"。如果a = 2,则第二项为int(str(a) * 2),第三项为int(str(a) * 3),第四项为int(str(a) * 4),第n 项为int(str(a) * n)
【提示】如何表示该多项式中的某一项呢?
方法一:如果item 表示当前项且为数值型,则下一项为item * 10 + a。
方法二: 利用字符串的乘法特性,如"2" * 2 的值为"22","2" * 3 的值为"222"。如果a = 2,则第二项为int(str(a) * 2),第三项为int(str(a) * 3),第四项为int(str(a) * 4),第n 项为int(str(a) * n)
举一反三
- int a=1,b=2,c=3,d=4,m=2,n=2,则执行:(n=a>b)&&(m==c>d)后,m的值为,n的值为
- 1.程序功能:输入n的值(n<10),计算1!+2!+3!+......+n!,并输出计算结果。 #include int main() { int i, n; long sum=0,fac=1; //fac存储每个加项(阶乘)的值 printf("请输入n的值:"); scanf("%d",&n); for( i=1; i<=n; i++) { ___________ //后一加项与前一加项的关系 sum=sum+fac; } printf("和为%ld ",sum); return 0; }
- 下列答案正确的是( )。 A: int<br/>n=7;int b=2;结果:n/b的值为3.5 B: int<br/>n=7;int b=2;结果:n/b的值为3.5L C: int<br/>n=7;int b=2;结果:n/b的值为3.5D D: int<br/>n=7;int b=2;结果:n/b的值为3
- 下面函数用递归调用的方法,将str中存放的长度为n的字符串反转过来,例如原来是"ABCDE",反序为"EDCBA"。 void invent(char *str,int n) {char t;t=*str; *str=*(str+n-1); *(str+n-1)=t; if( n>;2 ) invent ( ① ,n-2);else ② ;}
- 请在程序中2个划线处填入适当的语句,使得下面程序实现功能:计算并输出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。 Sn = 2/1 + 3/2 + 4/3 + …… + (n+1)/n 例如,若q的值为50.0,则函数值为50.416695。 #include float fun( float q ) { int n; float s; n = 2; s = 2.0; while (s______q) { s=s+(float)(n+1)/n; ______; } return s; } int main() { printf(%f , fun(50)); }