經(jīng)典C程序100例==21--30

字號:

【程序21】
    題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個
     第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下
     的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
    1.程序分析:采取逆向思維的方法,從后往前推斷。
    2.程序源代碼:
    main()
    {
    int day,x1,x2;
    day=9;
    x2=1;
    while(day>0)
     {x1=(x2+1)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/
     x2=x1;
     day--;
     }
    printf("the total is %d\n",x1);
    }
    【程序22】
    題目:兩個乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定
     比賽名單。有人向隊(duì)員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出
     三隊(duì)賽手的名單。
    1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,
      則表明此數(shù)不是素數(shù),反之是素數(shù)。       
    2.程序源代碼:
    main()
    {
    char i,j,k;/*i是a的對手,j是b的對手,k是c的對手*/
    for(i=’x’;i<=’z’;i++)
     for(j=’x’;j<=’z’;j++)
     {
     if(i!=j)
     for(k=’x’;k<=’z’;k++)
     { if(i!=k&&j!=k)
     { if(i!=’x’&&k!=’x’&&k!=’z’)
     printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
     }
     }
     }
    }