c经典程序设计实例.docVIP

  • 3
  • 0
  • 约2.9千字
  • 约 5页
  • 2017-02-09 发布于重庆
  • 举报
c经典程序设计实例

经典程序设计实例: 从键盘输入两个正整数m和n,求其最大公约数和最小公倍数。 #include stdio.h void main() { int m,n,r,x; scanf(%d,%d,m,n); x=m*n; while(n!=0) { r=m%n; m=n; n=r; } printf(%d %d\n,m,x/m); } 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内所有完数。 #include stdio.h void main() {int i,j,k,s; for(i=2;i=1000;i++) {s=0; for(j=1;ji;j++) if(i%j==0) s=s+j; if(s==i) {printf(%d its factors are ,i); for(k=1;ki;k++) if(i%k==0) printf(%d,,k); printf(\b \n);} } } 一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹……求它在第10次落地时,共经过多少米?第10次反弹多高? #include stdio.h main() { float sn=100.0,hn=sn/2; int n; for(n=2;n=10;n++) { sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ } printf(the total of road is %f\n,sn); printf(the tenth is %f meter\n,hn); getch(); } 一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个, 直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子? 猴子分N天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,.......因此,有: a1=(a2+1)*2; a2=(a3+1)*2; a3=(a4+1)*2; ...... a9=(a10+1)*2; a10=1; 现在就知道了算法,我们可以用递归来求解: int qiu(int a,int n) { if(n==1) a=1; //第10天就只剩1个了 else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1 } ------------------------------------- #includestdio.h int qiu(int a,int n); main(){ int zuih=1,tians=10;//最后一天的个数,天数 long sum; sum=qiu(1,10); printf(di yi tian you %ld ge.\n): } int qiu(int a,int n) { if(n==1) a=1; //第10天就只剩1个了 else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1 #includestdio.h void main() { int i,j; for(i=1;i=9;i++) { for(j=1;j=i;j++) printf(%d*%d=%-3d,j,i,i*j); printf(\n); } system(pause); } 编程打印“数字金字塔”: 1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 #include stdafx.h #include stdio.h #include conio.h int main(int argc, char* argv[]) { ?int i,j,m; ?int a[13][25]; ?for(i=0;i13;i++) ??for(j=0;j13;j++) ??{ ??????????? m=i+j-11; ???if(m0) ????a[i][j]=m; ???else ????a[i][j]=’\ ’; ??} ??? for(i=0;i13;i++) ??for(j=13;j25;j++) ???a[i][j]=a[i][24-j]; ??? for(i=0;i13;

文档评论(0)

1亿VIP精品文档

相关文档