8、求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。 #include
int a,n;
long b=0,sum=0; scanf(“%d %d”,&a,&n); for (i=1;i<=n;i++){ b = b*10+a; sum =sum+b; }
printf (“%ld”,sum); }
9、打印出所有\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。 【程序1】
#include
int i,m,n,k;
for(i=100;i<1000;i++){
m=__i__;
n=_ i/10__; k=i/100;
if(__m*m*m+n*n*n+k*k*k==i__) printf(\} }
【程序2】
#include
int i,a,n,s;
for (i=100;i<=999;i++){ n=i;s=0;
while(n>0) { a=__n__; s+=a*a*a; n /=__10__; }
if (__s==i__) printf(“%d”,i); }
10、一个数如果恰好等于它的因子之和,这个数就称为\完数\。例如,6的因子为1、2、3,而6=1+2+3,因此6是\完数\。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1、2、3
#include
int a,i,m;
for (a =1; a<=1000;a++) {
for (__i=1,m=0__; i <= a/2;i++) if (!(a%i)) __m+=i__;
if (m==a) printf(“M”,a); } }
11、利用:?/4=1-1/3+1/5-1/7+….级数求?的值,直到最后一项的绝对值小于10-6为止。求绝对值的函数为fabs()。 #__include
int i=1,flag=1;
double sum=0.0,s; do{
s=__1.0/(2*i-1)__; sum+=s*flag; i++;
__flag=-flag__;
}while(__fabs(s)>1e-6__);/**/ printf(\4*sum__); }
11、有一分数序列:2/1,3/2,5/3, 求出这个数列的前20项之和。 #include
int i=1;
double x=1,y=2, sum=0; while(__i<=20__) { sum=sum+__y/x__; y = ___x+y__; x = __y-x__; i++; }
printf(\}
12、一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高? #include
main(){
int i,n=10;
double h=100,s=100; for(i=2;i<=n;i++){
h*=__0.5__; s=__s+h*2__; }
printf(\}
13、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。 #include
int i=1,sum=1; while(i++ sum=__(sum+1)*2__; printf(\} 14、用迭代法求 。求平方根的迭代公式为: 要求前后两次求出的得差的绝对值少于0.00001。 #include float x0,x1,a; scanf(\x1=a/2; do{ x0=x1; x1=__(x0+a/x0)/2__; } while(__x1>1e-5__); printf(\} 15、用牛顿迭代法求方程2x3?4x2?3x?6?0在1.5附近的根。 #include #include __ #define f(x) 2*x*x*x-4*x*x+3*x-6 main(){ double x,y;x=__1.5__; do{ y = f(x); x = x - y/(6*x*x-8*x+3); } while(fabs(y)>1e-6); printf(\} 3216、用二分法求方程2x?4x?3x?6?0在(-10,10)之间的根 #include #define f(x) 2x*x*x-4*x*x+3*x-6 main(){ double x1=-10,x2=10,x,y; do{ x=(x1+x2)/2; y=f(x); if(y<0) x1=x; else x2=x; }while(fabs(y)>1e-6); printf(\} 17、以下程序的功能是:输入一个百分制成绩,输出一个五级制成绩等级。例如 输入75,输出 C。请完成填空 #include int score; scanf(\%d__\ switch(__score/10__){ case 1:case 2:case 3:case 4:case 5: printf(“grade E\\n”); ___break__; case 6: printf(“grade D\\n”);break; case 7: printf(“grade C\\n”);break; case 8: printf(“grade B\\n”);break; case 9: printf(“grade A\\n”);break; __default__:printf(\ } } 18、该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。 #include #define f(x) x*x-5*x+sin(x) void main(){ int x; float max; __max=f(1)__; for(x=2;x<=10;x++) __if(max } 19、程序功能:输入整数a和b的值,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。 #include scanf(\ s=__a*a+b*b__; if(s>100) printf(\s/100__); else printf(\a+b__); } 20、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,以下程序统计卖完所需的天数。 #include int day,x1,x2; day=0;x1=1020; while(__x1>0__){ x2=__x1/2-2__; x1=x2; day++} printf(“day=%d”,day); } 21、找出整数的所有因子 #include scanf(“%d”,&x); i=1; for ( ; __i<=x/2__;){ if (x%i==0) printf(%d”,i); i++; } } 22、统计用数字0-9可以组成多少个各位上的数字没有重复的3位偶数。 #include int n=0,i,j,k; for (i = 1;i <= 9;i++) for (k = 0;k <= 8; __k+=2__) if (k != i) for (j = 0;j <= 9;j++) if (__j!=i&&j!=k__) n++; printf(“n=%d\\n”,n); } 23、用100元换成1、2、5元的所有兑换方案。