C/c++Ȥζ(׸C/C++ѧ)

 1. 
 2.ߺֱ 
 3.Բ 
 4.Ǵ 
 5. 
 6.ߴηβ 
 7.׳βĸ   
 8.鷽֪ 
 9.  
 10.ת 
 11.㻹ɹ 
 12.ץͨ· 
 13.ôǮ 
 14.Ǯ 
 15.ͷ 
 16.۽ 
 17.ƽ߿ 
 18.5λ 
 19.8Ȼ 
 20.һλ 
 21.4λ   
 22.  
 23.ƽλƽλ 
 24.ķ˹ 
 25.ȫ 
 26. 
 27.   
 28. 
 29.abcd=(ab+cd)2ʵλ 
 30. 
 31.°ͺղ 
 32.  
 33. 
 34.Ҫͷ 
 35.÷ 
 36.Ǯټ 
 37.˹̹ѧ   
 38.ֱ 
 39.伸  
 40.ɫ 
 41.˼ָеѧ   
 42.ԼС  
 43.Ƚ 
 44.֮ 
 45.ֽΪ 
 46.г 
 47.ľȷֵ   
 48.O 
 49.ί  
 50.˭˵ 

 51.˭   
 52.  
 53.ﲩʿ(1) 
 54.ﲩʿ(2) 
 55.ĸֵ 
 56.ÿ͹ 
 57.˭Һ   
 58. 
 59.  
 60.1~9ֳ1233λ 
 61.1~93λƽ   
 62.8γص  
 63.ʽԭ 
 64.ʽԭ 
 65.ʽԭ(2) 
 66.ʽԭ(1) 
 67.ʽԭ(2)   
 68.λ۽ɳ 
 69.ħʦĲ(1)  
 70.ħʦĲ(2) 
 71.Լɪ   
 72.Ʊ  
 73.ܱʾ1~235 
 74.ɳ1~404 
 75.10Сǹ 
 76.С 
 77.߾Ƶķ־Ȥ   
 78.еĽֵ 
 79.еĽֵ(2)  
 80.ƽһȤ 
 81.ǹȲ   
 82.ķ  
 83.п˳ 
 84.Ƴ˹ 
 85.γ 
 86.Զ 
 87.ڰӽ   
 88.ʤ 
 89.30  
 90.ɽϷ 
 91.˻Ϸ   
 92.˻Ϸ(2)  
 93.ŵ 
 94.Ӳ 
 95.תΪ 
 96.ѡ 
 97.   
 98.˻ʺ 
 99.ļӷ  
 100.ƶ


 /*************************/

 1. 

 Ļá*ʾ0~360ȵҺcos(x) 

 *㷨
 ڳʹ飬ʮּ򵥡涨ʹ飬ͱòˡ
 ؼ0~360ȵڣһҪʾ㣬һʾ˵ֻܰ

 һϢֻһٷصһСΪ˻ñҪͼξͱһ

 һ*
 ΪͬʱõҺcos(x)ͼһϵ㣬cos(x)ҶԳԡĻз

 ΪxзΪy0~180ȵͼ180~360ȵͼҶԳƵģͼεܿΪ62

 x0~180ʱymôͬһ֮ԳƵ180~360ȵy ӦΪ62-m

 ÷Һacos(x,y)ĶӦϵ
 ʹַĳСһļɡ 

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 double y;
 int x,m;
 for(y=1;y>=-1;y-=0.1) /*yΪзֵ1-1Ϊ0.1*/
 {
 m=acos(y)*10; /*yӦĻm10ΪͼηŴ*/
 for(x=1;x<m;x++) printf(" ");
 printf("*"); /*ƴӡ * */
 for(;x<62-m;x++)printf(" ");
 printf("*\n"); /*ƴӡͬһжԳƵҲ**/
 } 

 return 0; 
 }

 *˼
 ʵá*ʾ0~360ȵsin(x)ߡ 

 Ļʾ0~360ȵcos(x)ֱf(x)=45*(y-1)+31ĵͼΡcos(x)ͼá*ʾ

 f(x)á+ʾͼཻĵf(x)ͼεķš 

 2.ߺֱ 

 *㷨
 ĻϽ޸ġͼεӵĹؼҪڷֱͬһͼεз

 ȷж໥λùϵΪˣжͼεĽ㣬ٷֱƴӡͬͼΡ 

 *ע˵
 #include<stdio.h>
 #include<math.h> 
 int main()
 {
 double y;
 int x,m,n,yy;
 for(yy=0;yy<=20;yy++) /*ڵһyм㲢һдӡͼ*/
 {
 y=0.1*yy; /*yĻз*/
 m=acos(1-y)*10; /*m: cos(x)yӦĻ*/
 n=45*(y-1)+31; /*n: ֱyӦ*/
 for(x=0;x<=62;x++) /*x: Ļз*/
 if(x==m&&x==n) printf("+"); /*ֱcos(x)ཻʱӡ+*/
 else if(x==n) printf("+"); /*ӡཻʱֱͼ*/
 else if(x==m||x==62-m) printf("*"); /*ӡཻʱcos(x)ͼ*/
 else printf(" "); /*ӡո*/
 printf("\n");
 } 

 return 0; 
 }

 *˼
 ʵsin(x)cos(x)ͼεͬʱʾ

 3.Բ

 Ļá*һĵԲ 

 *㷨
 ӡԲͼεҶԳԡԲķ̣
 R*R=X*X+Y*Y
 ԲÿһкеĶӦϵ 

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 double y;
 int x,m;
 for(y=10;y>=-10;yC)
 {
 m=2.5*sqrt(100-y*y); /*yӦm2.5ĻݺȵϵΪĻ
 оо࣬еʾĽԲ*/
 for(x=1;x<30-m;x++) printf(" "); /*ͼհ׿*/
 printf("*"); /*Բ*/
 for(;x<30+m;x++) printf(" "); /*ͼεĿĲֿ*/
 printf("*\n"); /*ԲҲ*/ 
 }
 return 0; 
 }

 *˼
 ʵֺy=x2ͼԲͼεʾ 

 4.Ǵ
 ڸǴУ10ίΪѡִ֣Ϊ1~100֡ѡ÷Ϊȥһ߷ֺ

 һͷֺ8ƽֵдһʵ֡

 *㷨
 㷨ʮּ򵥣ҪעڳжСֵıθֵġ
 *˵ע
 #include<stdio.h>
 int main()
 {
 int integer,i,max,min,sum;
 max=-32768; /*ȼ赱ǰֵmaxΪCСֵ*/
 min=32767; /*ȼ赱ǰСֵminΪCֵ*/
 sum=0; /*ۼӺͱĳֵΪ0*/
 for(i=1;i<=10;i++)
 {
 printf("Input number %d=",i);
 scanf("%d",&integer); /*ί*/
 sum+=integer; /*ܷ*/
 if(integer>max)max=integer; /*ͨȽɸѡе߷*/
 if(integer<min)min=integer; /*ͨȽɸѡеͷ*/
 }
 printf("Canceled max score:%d\nCanceled min score:%d\n",max,min);
 printf("Average score:%d\n",(sum-max-min)/8); /**/
 } 

 *н
 Input number1=90
 Input number2=91
 Input number3=93
 Input number4=94
 Input number5=90
 Input number6=99
 Input number7=97
 Input number8=92
 Input number9=91
 Input number10=95
 Canceled max score:99
 Canceled min score:90
 Average score:92 

 *˼
 Ŀ䣬ͬʱίֽвУ10ίҳƽ(ӷƽ)

 ƽ(ƽֵĲ)ίӦʵ֣

 5.
 555555ԼλǶ٣

 *㷨
 ԼĶ壬һNȥ1⣬NΪNԼˣ򵥵ķ

 2N-1֮ȥNNȫԼֻҪȡԼλȡֵ

 Χ100999֮䡣
 *˵ע
 #include<stdio.h>
 int main()
 {
 long i;
 int j;
 printf("Please input number:");
 scanf("%ld",&i);
 for(j=999;j>=100;jC)
 if(i%j==0)
 {
 printf("The max factor with 3 digits in %ld is:%d,\n",i,j);
 break;
 }
 }

 *н
 룺555555
 The max factor with 3 digits in 555555 is:777 

 6.ߴηβ
 1313ηλ

 *㷨
 Ȿֱӵķǣ13۳13ηȡλɡ
 ڼܱʾΧޣ֡ȷ㷨ܵõȷĽʵϣĿ

 ҪλֵȫûбҪ1313η
 о˷Ĺɷ֣˻λֵֻͱĺλйأͱĸλ޹

 һɣԴ򻯳
 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,x,y,last=1; /*lastXYηеĲֳ˻ĺλ*/
 printf("Input X and Y(X**Y):");
 scanf("%d**%d",&x,&y);
 for(i=1;i<=y;i++) /*XԳY*/
 last=last*x%1000; /*lastX1000ȡģĺλ*/
 printf("The last 3 digits of %d**%d is:%d\n",x,y,last%1000); /*ӡ*/
 }

 *н
 Input X and Y(X**Y):13**13
 The last 3 digits of 13**13 is:253
 Input X and Y(X**Y):13**20
 The last 3 digits of 13**20 is:801

 7.׳βĸ
 100!βжٸ㣿 



 *㷨
 룺100!ֵȻһĩβжٸ㡣ʵϣһڼܱ

 ʾΧޣǲܵġ
  Ϊ˽⣬ȴѧϷ100!ֵĩβѿһ

 һ5Ȼ100!ʱһ㡣תΪ1100100а˶

 ٸ5Nܱ25N25Nܱ5N15
 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,count =0;
 for(a=5;a<=100;a+=5) //ѭ5ʼ5ıΪ
 {
 ++count; //Ϊ5ı1
 if(!(a%25)) ++count; //Ϊ25ıټ1
 }
 printf("The number of 0 in the end of 100! is: %d.\n",count); //ӡ
 return 0; 
 }

 *н
 The number of 0 in the end of 100! is: 24. 

 *һ 

 ȷģǴԵȱ㡣жNٸ5ķе

 100йصģĿе100Ϊ1000Ҫ޸ĳ5Ŀ㷨ˡ 

 *˼ 

 ޸ĳ5Ŀ㷨ʹN!ĩβжٸ㡣 

 8.鷽֪
 С屾飬ҪABCλСѣÿÿֻܽһжֲͬĽ跨

 *㷨
 ʵһ⣬5ȡ3еķȶ屾15б

 Ȼʹٵķ˷ֱ屾еһıŶͬʱ

 һֽķ
 *˵ע
 int main()
 {
 int a,b,c,count=0;
 printf("There are diffrent methods for XM to distribute books to 3 readers:\n");
 for(a=1;a<=5;a++) /*ٵһ˽5е1ȫ*/
 for(b=1;b<=5;b++) /*ٵڶ˽5еһȫ*/
 for(c=1;a!=b&&c<=5;c++) /*ǰ˽費ͬʱٵ˽5
 е1ȫ*/
 if(c!=a&&c!=b) /*жϵǰ˽Ƿͬ*/
 printf(count%8?"%2d:%d,%d,%d ":"%2d:%d,%d,%d\n ",++count,a,b,c);
 /*ӡܵĽķ*/
 }

 *н
 There are diffrent methods for XM to distribute books to 3 readers:
 1: 1,2,3 2: 1,2,4 3: 1,2,5 4: 1,3,2 5: 1,3,4
 6: 1,3,5 7: 1,4,2 8: 1,4,3 9: 1,4,5 10:1,5,2
 11:1,5,3 12:1,5,4 13:2,1,3 14:2,1,4 15:2,1,5
 16:2,3,1 17:2,3,4 18:2,3,5 19:2,4,1 20:2,4,3
 21:2,4,5 22:2,5,1 23:2,5,3 24:2,5,4 25:3,1,2
 26:3,1,4 27:3,1,5 28:3,2,1 29:3,2,4 30:3,2,5
 31:3,4,1 32:3,4,2 33:3,4,5 34:3,5,1 35:3,5,2
 36:3,5,4 37:4,1,2 38:4,1,3 39:4,1,5 40:4,2,1
 41:4,2,3 42:4,2,5 43:4,3,1 44:4,3,2 45:4,3,5
 46:4,5,1 47:4,5,2 48:4,5,3 49:5,1,2 50:5,1,3
 51:5,1,4 52:5,2,1 53:5,2,3 54:5,2,4 55:5,3,1
 56:5,3,2 57:5,3,4 58:5,4,1 59:5,4,2 60:5,4,3

 9.

 Ļʾ

             1
           1 1
         1 2 1
        1 3 3 1
       1 4 6 4 1
    1 5 10 10 5 1
 ..

 *㷨
 е(x+y)NηչʽϵΪодԵĿ

 ķܶ࣬һ֡
 εصܽ
 1)NN+1ֵ(ʼΪ0)
 2)ڵNеĵJֵ(N>=2)
 J=1J=N+1ʱֵΪ1
 J!=1J!=N+1ʱֵΪN-1еĵJ-1ֵN-1еJֵ
 ֮
 ЩصѧʽɱʾΪ
 1 x=1x=N+1
 c(x,y)= 
 c(x-1,y-1)+c(x-1,y) 

 ӦǸϵݹѧʽƵġ
 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,n=13;
 printf("N=");
 while(n>12)
 scanf("%d",&n); /*ȷֵԱ֤Ļʾͼȷ*/
 for(i=0;i<=n;i++) /*N*/
 {
 for(j-0;j<24-2*i;j++) printf(" "); /*iǰĿո*/
 for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*iеĵjֵ*/
 printf("\n");
 }
 }

 void int c(int x,int y) /*еxеyеֵ*/
 {
 int z;
 if((y==1)||(y==x+1)) return 1; /*Ϊxеĵ1x+1У1*/
 z=c(x-1,y-1)+c(x-1,y); /*ֵΪǰһеy-1yֵ֮*/
 return z;
 }

 *˼
 һʵεķ

 10.ת
 һתΪʽ

 *㷨
 ʮתΪƵķܶ࣬ܵʵַCܹλвص㡣

 C˵һڼھԶƵʽ洢ģûбҪٽһһϵ

 תΪʽֻҪڴеĶƱʾɡ
 *˵ע
 #include<stdio.h>
 void printb(int,int);
 int main()
 {
 int x;printf("Input number:");
 scanf("%d",&x);
 printf("number of decimal form:%d\n",x);
 printf(" it's binary form:");
 printb(x,sizeof(int)*8); /*x: sizeof(int):intڴռֽ
 sizeof(int)*8:intͶӦλ*/
 putchar('\n');
 }

 void printb(int x,int n)
 {
 if(n>0)
 {
 putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*nλ*/
 printb(x,n-1); /*ãxĺn-1λ*/
 }
 }

 *н
 룺8
 
 number of decimal form:8
 it's bunary form:0000000000001000
 룺-8
 number of decimal form:-8
 it's binary form:1111111111111000
 룺32767
 number of decimal form:32767
 it's binary form:0111111111111111
 룺-32768
 number of decimal form:-32768
 it's binary form:1000000000000000
 룺128
 number of decimal form:128
 it's binary form:0000000010000000 

 *Ľһ
 CԿԶλвص㣬Աд߼Բڱд޷дĳ

 λCԵһص㣬ѧϰCԵĹӦܺա
 ʹõλ㷽ѵģҲԲõݹҿжԳŻ

 *˼
 תΪĽƻ˽




 11.㻹ɹ 

йоСɹĳ˴199011ʼɹ

 Ժĳһǡ㡱ǡɹ

 *㷨
 Խ̷Ϊ
 1)199011տʼָڹж죻
 2)ڡ㡱͡ɹΪ5죬Խ5ȥ
 3)жڡ㡱ڡɹ
  Ϊ123ڡ㡱
  ڡɹ
 Уؼǵһ199011ָж죬ҪжϾǷ꣬

 Ϊ29죬ƽΪ28졣ķα£
  ((ܱ4  ܱ100) ܱ400)
  ꣻ
  ꡣ
 Cжܷʹ(ģ)

 *˵ע
 #include<stdio.h>
 int days(struct date day);
 struct date{
 int year;
 int month;
 int day;
 };

 int main()
 {
 struct date today,term;
 int yearday,year,day;
 printf("Enter year/month/day:");
 scanf("%d%d%d",&today.year,&today.month,&today.day); /**/
 term.month=12; /*ñĳʼֵ*/
 term.day=31; /*ñĳʼֵ*/
 for(yearday=0,year=1990;year<today.year;year++)
 {
 term.year=year;
 yearday+=days(term); /*1990ָǰһ깲ж*/
 }
 yearday+=days(today); /*ָеָڵ*/
 day=yearday%5; /**/
 if(day>0&&day<4) printf("he was fishing at that day.\n"); /*ӡ*/
 else printf("He was sleeping at that day.\n");
 }

 int days(struct date day)
 {
 static int day_tab[2][13]=
 {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /*ƽÿµ*/
 {0,31,29,31,30,31,30,31,31,30,31,30,31,},
 };
 int i,lp;
 lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
 /*жyearΪ껹ƽ꣬lp=0Ϊƽ꣬0Ϊ*/
 for(i=1;i<day.month;i++) /*㱾11*/
 day.day+=day_tab[lp];
 return day.day;
 }

 *н
 Enter year/month/day:1991 10 25
 He was fishing at day.
 Enter year/month/day:1992 10 25
 He was sleeping at day.
 Enter year/month/day:1993 10 25
 He was sleeping at day.

 *˼
 ӡݵ

 12.ץͨ·
 һΥͨײ˺ܡֳĿ¼ûмסţֻ³ŵһЩ

 ˵յǰλͬģ˵յĺλͬģǰλͬ ѧ

 ң˵λĳŸպһƽš

 *㷨
 ĿҪһǰλͬλͬ໥ֲͬȻжϸǷ

 һƽ

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 int i,j,k,c;
 for(i=1;i<=9;i++) /*i:ǰλȡֵ*/
 for(j=0;j<=9;j++) /*j:źλȡֵ*/
 if(i!=j) /*ж϶λǷ*/
 {
 k=i*1000+i*100+j*10+j; /*ܵ*/
 for(c=31;c*c<k;c++); /*жϸǷΪһƽ*/
 if(c*c==k) printf("LorryCNo. is %d.\n",k); /*ǣӡ*/

 }
 }

 *н
 Lorry _No.is 7744



 13.ôǮ

 һȡϢΪ0.63%ĳһǮڽеȡ1000

 Ԫʱպȡ꣬ǮʱӦ١

 *㷨
 ǮȡǮḶ́ԲõƵķϢҪȡ1000ԪҪ

 дǮ
 =1000/(1+12*0.0063)
 ƿꡢꡭдǮ
 =(+1000)/(1+12*0.0063)
 =(+1000)/(1+12*0.0063)
 ڶ=(+1000)/(1+12*0.0063)
 һ=(ڶ+1000)/(1+12*0.0063)
 ͨϹ̾ͿԺ׵һҪǮ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i;
 float total=0;
 for(i=0;i<5;i++) /*i ΪȡֵΪ0~4*/
 total=(total+1000)/(1+0.0063*12); /*ۼεļ
 Ϊ*/
 printf("He must save %.2f at first.\n",total);
 }

 *н
 He must save 4039.44 at first 

 14.Ǯ
 ȡͬ޵ϢʷֱΪ
 0.63% =1
 0.66% =2
 0.69% =3
 0.75% =5
 0.84% =8
 Ϣ=*Ϣ*12*ޡ
 ĳ2000ԪǮͨѡһִǮʹǮ20õϢ(ٶ

 жԳ޵һʱ䲻Ϣ)

 *㷨
 Ϊ˵õϢеǮӦڵʱȡȻ̽ԭıϢΪ

 µıУϵعֱ20ΪֹڴʲͬԲͬĴ()

 20õϢǲһġ
 ⣬2000Ԫ20꣬1i1Σ2i2Σ3i3Σ5i5Σ8i8Σ

 ʱӦõıϼΪ
 2000*(1+rate1)i1*(1+rate2)i2*(1+rate3)i3*(1+rate5)i5*(1+rate8)i8
 rateNΪӦ޵ʡ⻹ɵõ
 0<=i8<=2
 0<=i5<=(20-8*i8)/5
 0<=i3<=(20-8*i8-5*i5)/3
 0<=i2<=(20-8*i8-5*i5-3*i3)/2
 0<=i1=20-8*i8-5*i5-3*i3-2*i2
 ٷеi8i5i3i2i1ϣĹʽֵѴ

 

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;
 float max=0,term;
 for(i8=0;i8<3;i8++) /*пܵĴʽ*/
 for(i5=0;i5<=(20-8*i8)/5;i5++)
 for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)
 for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)
 {
 i1=20-8*i8-5*i5-3*i3-2*i2;
 term=2000.0*pow((double)(1+0.0063*12),(double)i1)
 *pow((double)(1+2*0.0063*12),(double)i2)
 *pow((double)(1+3*0.0069*12),(double)i3)
 *pow((double)(1+5*0.0075*12),(double)i5)
 *pow((double)(1+8*0.0084*12),(double)i8);
 /*㵽ʱıϼ*/
 if(term>max)
 {
 max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;
 }
 }
 printf("For maxinum profit,he should so save his money in a bank:\n");
 printf(" made fixed deposit for 8 year: %d times\n",n8);
 printf(" made fixed deposit for 5 year: %d times\n",n5);
 printf(" made fixed deposit for 3 year: %d times\n",n3);
 printf(" made fixed deposit for 2 year: %d times\n",n2);
 printf(" made fixed deposit for 1 year: %d times\n",n1);
 printf(" Toal: %.2f\n",max);
 /*ʽ*/
 }

 *н
 For maxinum profit,he should so save his money in a bank:
 made fixed deposit for 8 year: 0times
 made fixed deposit for 5 year: 4times
 made fixed deposit for 3 year: 0times
 made fixed deposit for 2 year: 0times
 made fixed deposit for 1 year: 0times
 Total:8841.01
 ɼѵĴΪĴδ5ڡ
 *˼
 ĳλְסÿΪ2Ԫ򷿸ķǣ
 һν壬Ż20%
 ӵһ꿪ʼÿڸ
 5꽻壬Ż50%
 10꽻壬Ż10%
 20꽻壬ûŻݡ
 2Ԫٶڽ20ۺʾֲ䣬Ӧѡָ

 ʽʹӦǮ٣

 15.ͷ

 ABCDEĳҹϻȥ㣬ڶ賿ʱƣǸҵط˯

 ˣAһΪݣѶһӵԼһݡBڶҲ

 ΪݣѶһӵԼһݡCDEҲͬķ㡣

 ϻٲ˶㣿

 *㷨
 ⣬ܼƽеƽ䣬ÿηʱĲͬģӵһʣµ

 ÷ֳݣȻԼһݣķݡ
 ٶΪXX԰ĿҪη䣺X-1ɱ5µΪ4*(X-1)5

 XҪXĿĽ⡣

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n,i,x,flag=1; /*flagƱ*/
 for(n=6;flag;n++) /*̽ķֵ̽n𲽼Ӵ*/
 {
 for(x=n,i=1&&flag;i<=5;i++)
 if((x-1)%5==0) x=4*(x-1)/5;
 else flag=0; /*ܷñfalg=0˳*/
 if(flag) break; /*ҵ˳̽Ĺ*/
 else flag=1; /*̽һ*/
 }
 printf("Total number of fish catched=%d\n",n); /**/
 }

 *н
 Total number of fish catched = 3121

 *Ľһ
 ̽̽ĳֵΪ6ÿ̽ĲΪ1ǹֱصڽһĿ

 ޸Ĵֵ̽ĲֵԼ̽

 *˼
 ʹķⱾ⡣ 

 16.۽



 Ὣһ׽γϵͳһȫһӶ֮һڶµ֮һ

 ֮һµķ֮һķ֮һĴµ֮һ֮һ

 µ11ԭйм㣿

 *㷨
 ĿеǷγ۵ģÿĲͬjʣµ(j+1)֮һټ1/(j+1)

 νĴµ11ȫˡ
 ٶjΪXj£
 x-(x+1)/(j+1)
 ĴγʱӦʣ11XҪXĿĽ⡣
 Ӧעǣ"(x+1)/(j+1)"Ӧ̽XĳֵԴ23ʼ̽ĲΪ2ΪXֵ

 һΪ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,n=0,x; /*nΪ־*/
 for(i=23;n==0;i+=2) /*̽Ĳ͹*/
 {
 for(j=1,x=i;j<=4&&x>=11;j++) /*ɳĴεĲ*/
 if((x+1)%(j+1)==0) /*ʵʵĳ۲*/
 x-=(x+1)/(j+1);
 else {x=0;break;} /*ֹͣ*/
 if(j==5&&x==11) /*Ĵ11*/
 {
 printf("There are %d fishes at first.\n",i); /**/
 n=1; /*˳̽*/
 }
 }
 }

 *н
 There are 59 fishes at first.

 *˼
 ձѧϷרдһ⣺׽2520ӷָӡ˵

 ϴ󽫷ָĽӵ1/8϶϶õͬԭȵĽӷ1/7õͬԭȵ

 ӷ1/6ģõͬԭȵĽӷ1/5壻õͬԭȵĽӷ1/4

 õͬԭȵĽӷ1/3ϴ󡱡еĽһࡣֵԭиж

 ٽӣ

 17.ƽ߿
 סҡλ㣬洬21ֻ𡣵ʱǷ߿װ㣬

 װ˰㣬߿ǿյģûгӣֻͨĿΪ߸ȵģ7

 ȵġڲ㵹ǰ£ͿƽΪݣ

 *㷨
 ֪ÿӦֵ߸3.5㡣һ3*3aʾ˷ֵ

 ÿ˶ӦaһУĵ0зŷֵĵ1зŷֵİ

 ĵ2зŷֵĿտĿƳ
 ÿлÿеԪ֮ͶΪ7
 ˵Ӱ=3.5
 ÿõܳ3
 ÿ˶1 ҰһΪ
 ҵĳַ㷽˭һݶͬģΪ˱ظķ䷽Թ涨

 ˵ڵһ˵ڶ˵İڵڵһ˵İ

 *˵ע
 #include<stdio.h>
 int a[3][3],count;
 int main()
 {
 int i,j,k,m,n,flag;
 printf("It exists possible distribtion plans:\n");
 for(i=0;i<=3;i++) /*̽һa[0][0]ֵ>3*/
 {
 a[0][0]=i;
 for(j=i;j<=7-i&&j<=3;j++) /*̽ڶa[1][0]ֵ>3*/
 {
 a[1][0]=j;
 if((a[2][0]=7-j-a[0][0])>3)continue; /*>3*/
 if(a[2][0]<a[1][0])break; /*Ҫһ˷ֵ>=ǰһˣųظ*/
 for(k=1;k<=5;k+=2) /*̽a[0][1]ֵΪ*/
 {
 a[0][1]=k;
 for(m=1;m<7-k;m+=2) /*̽ a[1][1]ֵΪ*/
 {
 a[1][1]=m;
 a[2][1]=7-k-m;
 for(flag=1,n=0;flag&&n<3;n++)
 /*жÿ˷ֵ 3.5flagΪıǱ*/
 if(a[n][0]+a[n][1]<7&&a[n][0]*2+a[n][1]==7)
 a[n][2]=7-a[n][0]-a[n][1]; /*ӦõĿտ*/
 else flag=0; /*ñΪ0*/
 if(flag)
 {
 printf("No.%d Full basket SemiCbasket Empty\n",++count);
 for(n=0;n<3;n++)
 printf(" fisher %c: %d %d %d\n",
 'A'+n,a[n][0],a[n][1],a[n][2]);
 }
 }
 }
 }
 }
 }
 * н 
 It exists possible distribution plans:
 No.1 Full basket SemiCbasket Empty
 fisher A: 1 5 1
 fisher B: 3 1 3
 fisher C: 3 1 3
 No.2 Full basket SemiCbasket Empty
 fisher A: 2 3 2
 fisher B: 2 3 2
 fisher C: 3 1 3

 *˼
 ̻ѧҳһ⣺ٶƿơƣѢƿеľƷָ˺ȣȸƿƵ

 һġһ˺ÿһƿеľƣҼպһƿʺƿƵĸжˣ
 (𰸣ƿƵֱ2ˡ3˺6) 



 18.5λ
 λΪ6ܱ3λж٣

 *Ŀ㷨
 ֪λѡΧ100061001699996i=1000ͨ

 i*10+6ɵõѡ(iı仯Χ1000~999)жϸܷ3

 *˵ע
 #include<stdio.h>
 int main()
 {
 long int i;
 int count=0; /*count:ͳλĸ*/
 for(i=1000;i<9999;i++)
 if(!((i*10+6)%3)) /*жѡܷ3*/
 count++; /**/
 printf("count=%d\n",count);
 }

 *н
 count=2999



 *˼
 1001000֮жٸ֮Ϊ5
 (𰸣104113122131140203212221230302311320401410500) 

 19.8Ȼ
 һȻ81õ̱8Ҳ1ٽڶε̱87õһΪa֪

 Ȼ174õ̱1715õһa2Ȼ

 *㷨
 ⣬Ϊi(i0ʼȡֵ)Ʒгϵʽ
 (((i*8+7)*8)+1)*8+1=((2*i*17)+15)*18+4
 ̽iֵ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i;
 for(i=0;;i++) /*̵ֵ̽*/
 if(((i*8+7)*8+1)*8+1==(34*i+15)*17+4)
 { /*жȡõĵǰiֵǷϵʽ*/
 /**/
 printf("The required number is: %d\n",(34*i+15)*17+4);
 break; /*˳ѭ*/
 }
 }

 *н
 The required number is:1993 

 20.һλ



 һȻ߽ƱʽһλȻľŽƱʾҲһλλ

 ෴λ

 *㷨
 ֪߽ƺ;ŽƱʾȫȻÿһλһС7߽ʽΪkji(ij

 kȡֱֵΪ1~6)ȻŽƱʾʽΪijk

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,k;
 for(i=1;i<7;i++)
 for(j=0;j<7;j++)
 for(k=1;k<7;k++)
 if(i*9*9+j*9+k==i+j*7+k*7*7)
 {
 printf("The special number with 3 digits is:");
 printf("%d%d%d(7)=%d%d%d(9)=%d(10)\n",k,j,i,i,j,k,i*9*9+j*9+k);
 }
 }

 *н
 The special number with 3 digits is:503(7)=305(9)=248(10)




 21.4λ

 Nһλ9ǡ䷴Nǽֵγɵ磺

 1234ķ4321

 *㷨
 Nǧ١ʮλΪijklȡֵΪ0~9ϵʽ
 (i*103+j*102+10*k+l)*9=(l*103+k*102+10*j+i)
 ijklN

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i;
 for(i=1002;i<1111;i++) /*λֵܵ*/
 if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9)
 /*жϷǷԭ9*/
 printf("The number satisfied stats condition is: %d\n",i);
 /**/
 }

 *н
 The number satisfied states condition is:1089 

 22.
 һԹ̶ٶʻ˾10㿴̱ϵĶһԳ(Ҷ

 ȫһ)Ϊ95859Сʱ̱ϳһµĶԳʸóٶǶ٣

 µĶԳǶ٣

 *㷨
 ⣬ԳΪiֵΪ95589εȡֵiֵÿһλֽԳλ

 ϵбȽϣÿԳλϵȣжiΪĶԳ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int t,a[5]; /*aŷֽλ*/
 long int k,i;
 for(i=95860;;i++) /*95860Ϊֵѭ̽*/
 {
 for(t=0,k=100000;k>=10;t++) /*Ӹߵͷֽȡiֵÿλ*/
 { /* ֣δa[0]~a[5]*/
 a[t]=(i%k)/(k/10); 
 k/=10;
 }
 if((a[0]==a[4])&&(a[1]==a[3]))
 {
 printf("The new symmetrical number kelometers is:%d%d%d%d%d\n",
 a[0],a[1],a[2],a[3],a[4]);
 printf("The velocity of the car is: %.2f\n",(i-95859)/2.0);
 break;
 }
 }
 }

 *н
 The new symmetrical number kelometers is:95959.
 The velocity of the car is:50.00

 *˼
 һ뵹õԭķһķΪԳ

 1993ĶƵĶԳ



 23.ƽλƽλ



 ֪ƽλabcxyzabcxyzδǲͬģaxbyczƽλ

 λabcxyz

 *㷨
 ȡƽλnn1nӸͷֽΪabcn1ӸߵͷֽΪxyzжaxbycz

 ǷΪȫƽ

 *˵ע
 #include<stdio.h>
 #include<math.h>
 void f(int n,float* s);
 int main()
 {
 int i,t;
 float a[3],b[3];
 print("The possible perfect squares combinations are:\n");
 for(i=11;i<=31;++i) //ƽλȡֵΧ
 for(t=11;t<=31;++t)
 {
 f(i*i,a); //ֽƽλĸλÿλֱַ
 f(t*t,b);
 if(sqrt(a[0]*10+b[0]) == (int)sqrt(a[0]*10+b[0]) 
 && sqrt(a[1]*10+b[1]) == (int)sqrt(a[1]*10+b[1])
 && sqrt(a[2]*10+b[2]) == (int)sqrt(a[2]*10+b[2]) )
 {
 printf("%d and %d\n,i*i,t*t"); //µȫƽ
 }
 }
 } 



 /* -
 ֽλnĸλִ֣Ӹߵδָsָ
 */

 void f(int n,float* s)
 {
 int k;
 for(k=1000;k>=10;++s)
 {
 *s = (n%k) /(k/10);
 k /=10;
 }
 }

 *н
 The possible perfect squares combinations are:
 400 and 900
 841 and 196

 *˼

 һλλÿλֵĽ׳֮͡
  abc = a! + b! + c!
 (ȷ145 = 1! + 4! +5!) 



 24.ķ˹



 һֵͣƸΪķ˹(Ϊ)
  407=43+03+73һķ˹Ա1000ڵаķ˹

 *㷨
 ɲٷȡ1000ڵĸ(Ϊi)iĸλַֽ󣬾ݰķ˹ʽм

 жϡ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,t,k,a[3];
 printf("There are follwing Armstrong number smaller than 1000:\n");
 for(i=2;i<1000;i++) /*ҪжiȡֵΧ2~1000*/
 {
 for(t=0,k=1000;k>=10;t++) /*ȡiĸλ(Ӹλ)*/
 {
 a[t]=(i%k)/(k/10); /*ֱa[0]~a[2}*/
 k/=10;
 }
 if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)
 /*жiǷΪķ˹*/
 printf("%5d",i); /**/

 }
 printf("\n");
 }

 *н
 There are following Armstrong number smaller than 1000:
 153 370 371 407 

 25.ȫ



 һǡõ֮ͣƸΪȫ

 *㷨
 ȫĶ壬ȼѡȡa(aȡֵ1~1000)ӣۼmma

 ȷaΪȫ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,i,m;
 printf("There are following perfect numbers smaller than 1000:\n");
 for(a=1;a<1000;a++) /*ѭѡȡ1~1000еĸж*/
 {
 for(m=0,i=1;i<=a/2;i++) /*aӣ֮m=aaȫ*/
 if(!(a%i))m+=i;
 if(m==a)
 printf("%4d ",a);
 }
 printf("\n");
 }

 *н
 TThere are following perfect numbers smaller than 1000:
 6 28 496 



 26.

 Aȫ(1A)֮͵BBȫ(1B)֮

 AABΪ3000ڵȫ

 *㷨
 壬ҪжaǷֻҪaȫӵۼӺΪbټbȫӵ

 ۼӺΪnnaжabaĸӵ㷨
 aζi(i=1~a/2)ģ㣬ģ0iΪaһӣiͲaӡ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,i,b,n;
 printf("There are following friendlyCnumbers pair smaller than 3000:\n");
 for(a=1;a<3000;a++) /*1000ڵȫ*/
 { 
 for(b=0,i=1;i<=a/2;i++) /*aĸӣ֮ʹb*/
 if(!(a%i))b+=i; /*bĸӣ֮ʹn*/
 for(n=0,i=1;i<=b/2;i++)
 if(!(b%i))n+=i;
 if(n==a&&a<b)
 printf("%4d..%4d ",a,b); /*n=aabһ*/
 }
 }

 *н
 There are following friendlyCnumbers pair smaller than 3000:
 220.. 284 1184.. 1210 2620.. 2924 

 27.
 ָһƽβڸȻ磺
 252=625 762=5776 93762=87909376
 200000ڵ

 *㷨
 áһƽٽȡӦλķȻǲȡģΪ޷ʾ

 
 ֹʽƽ(˷)ļ̣376Ϊ
 376 
 X 376 
 -
 2256 һֻ=*ĵһλ
 2632 ڶֻ=*ĵڶλ
 1128 ֻ=*ĵλ
 -
 141376 
 ĵǻλĺλḶ́ԿÿһεĲֻУ

 ÿһλԻĺλӰ졣ܽɿԵõλ˷УԻĺλӰ

 ֱֻΪ
 һֻУλ*ĵһλ
 ڶֻУλ*ĵڶλ
 ֻУһλ*ĵλ
 ϵĲֻĺλͺȡλλ˻ĺλĹɿƹ㵽ͬ

 ͬλ˻
 ֹĹ̿㷨д

 *˵ע
 #include<stdio.h>
 int main()
 {
 long mul,number,k,ll,kk;
 printf("It exists following automorphic nmbers small than 200000:\n");
 for(number=0;number<200000;number++)
 {
 for(mul=number,k=1;(mul/=10)>0;k*=10);
 /*numberλȷȡֽг˷ʱϵk*/
 kk=k*10; /*kkΪȡֻʱϵ*/
 mul=0; /*nλ*/
 ll=10; /*llΪȡӦλʱϵ*/
 while(k>0)
 {
 mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk;
 /*(ֻ+ȡĺNλ*ȡĵMλ)%kkٽȡֻ*/
 k/=10; /*kΪȡʱϵ*/
 ll*=10;
 }
 if(number==mul) /*жΪ*/
 printf("%ld ",number);
 }
 }

 *н
 It exsts following automorphic numbners smaller than 200000:
 0 1 5 6 25 76 376 625 9376 90625 109376 

 28.
 ӡвn(ȡn<256) ƽжԳʵ(Ҳƻ)

 *㷨
 Ҫжϵnƽ(a)aÿһλзֽ⣬ٰaĴӵ͵ߵ˳ָ

 һk(n=13a=169k=961)akжnΪ

 *˵ע

 ԭдұȽϷѽ⣬ֻԭ޸£߻ִ 

 #include<stdio.h>
 int main(void)
 {
 int m[16],n,i,t,count=0;
 long unsigned a,k;
 printf("No. number it's square(palindrome)\n");
 for(n=1;n<256;n++) /*nȡֵΧ*/
 {
 k=0;t=1;a=n*n; /*nƽ*/

 for(i=0;a!=0;i++) /*ӵ͵߷ֽaÿһλm[0]~m[16]*/
 {
 m=a%10;//ȡaĸλѭͿȡøλ
 a/=10; 
 }

 int j=0;
 for(iC;j<i;j++,iC)//ΪnƽĸλˣжǲǶԳ
 if(m[j]!=m)break;//ֻҪһλǶԳƣǾ˵ǶԳƣͿ˳

 //еλԳƾ˵ǶԳˣͿԴӡ
 if(j>=i)printf("%2d%10d%10d\n",++count,n,n*n);

 } 

 return 0;
 }

 *н
 No. number it's square(palindrome)
 1 1 1
 2 2 4
 3 3 9
 4 11 121
 5 22 484
 6 26 676
 7 101 10201
 8 111 12321
 9 121 14641
 10 202 40804
 11 212 44944

 //ԭģдҷѽ
 #include<stdio.h>
 int main(void)
 {
 int m[16],n,i,t,count=0;
 long unsigned a,k;
 printf("No. number it's square(palindrome)\n");
 for(n=1;n<256;n++) /*nȡֵΧ*/
 {
 k=0;t=1;a=n*n; /*nƽ*/

 for(i=1;a!=0;i++) /*ӵ͵߷ֽaÿһλm[1]~m[16]*/
 {
 m=a%10;//עȡaĸλѭͿȡøλ,УΪ

 жǲǶԳ
 a/=10; 
 }

 for(;i>1;iC)
 {
 k+=m[i-1]*t;
 t*=10;
 }
 if(k==n*n)
 printf("%2d%10d%10d\n",++count,n,n*n);
 } 

 return 0;
 }



 *н
 No. number it's square(palindrome)
 1 1 1
 2 2 4
 3 3 9
 4 11 121
 5 22 484
 6 26 676
 7 101 10201
 8 111 12321
 9 121 14641

 29.abcd=(ab+cd)2ʵλ

 3025һֶصʣƽΪΣ3025ʹ֮Ӻƽ(30+25)2ǡõ

 3025ʵȫλ

 *㷨
 ʵλûзֲɣԲٷλжϣӶɸѡ

 ʵλ㷨ʵ֣ȡһλΪ֣ǰλΪaλΪbȻù

 ʽ㲢жϡ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n,a,b;
 printf("There are following number with 4 digits satisfied condition\n");
 for(n=1000;n<10000;n++) /*λNȡֵΧ1000~9999*/
 {
 a=n/100; /*ȡNǰλa*/
 b=n%100; /*ȡNĺλb*/
 if((a+b)*(a+b)==n) /*жNǷΪĿ涨ʵλ*/
 printf("%d ",n);
 }
 }

 *н
 There are following numbers with 4 digits satisfied condition:
 2025 3025 9801 

 30.

 1~1000֮

 *㷨
 ǽ1жһnǷΪҪжnܷ񱻳1֮

 nΪ
 ʱiԴ2ʼn1/2ΪֹiȥҪжֻҪڿ

 ȷҪжϵ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n1,nm,i,j,flag,count=0;
 do{
 printf("Input START and END=?");
 scanf("%d%d",&n1,&nm); /*ķΧ*/
 }while(!(n1>0&&n1<nm)); /*ȷķΧ*/
 printf("..PRIME TABLE(%dC%d)\n",n1,nm);
 if(n1==1||n1==2) /*2*/
 {
 printf("%4d",2);
 n1=3;count++;
 }
 for(i=n1;i<=nm;i++) /*жָΧڵǷΪ*/
 {
 if(!(i%2))continue;
 for(flag=1,j=3;flag&&j<i/2;j+=2)
 /*жܷ񱻴3һеĳһ*/
 if(!(i%j))flag=0; /**/
 if(flag) printf(++count%15?"%4d":"%4d\n",i);
 }
 }

 *˼
 ҳʮСȻǸǺ()






 31.°ͺղ



 ֤2000ڵżֽܹΪ֮(֤°ͺղ2000ڵż)

 *㷨
 Ϊ֤°ͺղ2000ڵżǳģҪֽΪ֣Ȼжϳֽ

 ǷΪǣ⣻½зֽжϡ
 жжǷΪ㷨˸Ľжϡô2ʼһ롱Ϊ2ʼ

 ƽԭз

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int fflag(int n);
 int main()
 {
 int i,n;
 for(i=4;i<=2000;i+=2)
 {
 for(n=2;n<i;n++) /*żiֽΪ*/
 if(fflag(n)) /*ֱжǷΪ*/
 if(fflag(i-n))
 {
 printf("%14d=%d+%d\n",i,n,i-n); /**/
 break;
 }
 if(n==i) printf("error %d\n",i);
 }
 }

 int fflag(int i) /*жǷΪ*/
 {
 int j;
 if(i<=1)return 0;
 if(i==2)return 1;
 if(!(i%2))return 0; /*if no,return 0*/
 for(j=3;j<=(int)(sqrt((double)i)+1);j+=2)
 if(!(i%j))return 0;
 return 1; /*if yes,return 1*/
 } 



 32. 

 λĿָһλֵ˳򵹹ɵķҲ

 *㷨
 ص㲻жķһķķǴĩβν

 ȡһλ֣ÿȡһκС10ȡΪµһλµ10

 ϱȡ֣ԭִӵ͵߱ϵؽȡΪµӸߵ͵

 λ֡ 

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int num(int number);
 int ok(int number);
 int main()
 {
 int i,count;
 printf("There are invertable primes with 4 digits: \n");
 for(count=0,i=1001;i<9999;i+=2) //ȫ
 {
 if(num(i)) //ǿ
 printf(count%9 ? "%3d:%d" : "%3d:%d\n",++count,i);
 }
 return 0;
 } 

 int num(int number)
 {
 int i,j;
 if(!ok(number))return 0; //жǷΪ
 for(i=number,j=0;i>0;i/=10) //λ
 {
 j=j*10 + i%10;
 }
 if(number<j) //ԭСڷ
 {
 if(!ok(i)) //ж϶ӦķǷΪ
 {
 return 0;
 }
 else
 {
 return 1; //ǿ򷵻1
 }
 }
 else
 {
 return 0; 
 }
 getchar();
 return 0;
 }

 int ok(int number)
 {
 int i,j;
 if(number%2 ==0) //жǷΪ
 return 0;

 j= sqrt((double)number) +1 ; //ȡƽΪжϵ
 for(i=3;i<j;i+=2)
 {
 if(number %i ==0) //Ϊ򷵻1򷵻0
 return 0;
 }

 return 1;
 }

 *˼

 1000ڵָaΪa+2Ҳaa+2Ϊ

 33.

 󲻳1000Ļ

 *㷨
 νָһnҺʹֵͬnΪ

 Աص㲻жķķܶ࣬һ

 㷨ʵ˼·һĻжǷΪ
 1000ĻλλĻǲٷһӦķ

 ䷴ȣǻ

 *˵ע
 #include<stdio.h> 

 int a(int n)
 int main()
 {
 int i,j,t,k,s;
 printf("Following are palindrome primes not greater than 1000:\n");
 for(i=0;i<=9;++i) //ٵһλ
 for(j=0;j<=9;++j) //ٵڶλ
 for(k=0;k<=9;++k) //ٵλ
 {
 s=i*100 + j*10 + k; //ɵ
 t=ik*100 + j*10 + i; //Ӧķ
 if(i == 0 && j==0) //ǰλΪ0
 {
 t/100;
 }
 else if(i ==0) //ĵһλΪ0
 {
 t/10;
 }
 if(s.10 && s==t && a(s)) //10Ϊ
 {
 printf("%d\t",s);
 }
 }
 return 0;
 }

 //жϲnǷΪ
 int a(int n)
 {
 int i;
 for(i=2;i<(n-1)/2;+=i)
 {
 if(n%i == 0)
 return 0;
 }

 return 1;

 }

 *н

 Following are palindrome primes not greater than 1000:
 11 101 131 151 181 191 313 353
 373 383 727 787 797 919 929

 *˼

 Żɻ㷨

 34.Ҫͷ



 1898CҪͷ뽫1993СųɵһУڶϵÿ

 ϵ֮ڶǷɸǵĺǡ1898ٺ

 ڵĻм
 һУ2 3 5 7 11 13 171979 1987 1993
 ڶУ1 2 2 4 2 4 8 6

 *㷨
 ȴѧϷ⣺
 һеΪn[1]n[2]n[3].nڶеĲֵΪm[1]m[2]m[3]m[j]

 m[j]Ϊ
 m[j]=n[j+1]-n[j]
 ڶNĺΪ
 SUM=m[1]+m[2]+m[3]++m[j]
 =(n[2]-n[1])+(n[3]-n[2])+(n[4]-n[3])++(n[j+1]-n[j])
 =n[j+1]-n[1]
 ɴĿͱˣڲ1993ǷǵĲǡ1898ڣ

 ڶбУǡΪ1898
 ԵȼǱȽϼ򵥵ġ
 ɷ֪вذ2Ϊ2ĲһΪԲؿǡ

 *עͣ
 #include<stdio.h>
 #include<math.h>
 #define NUM 320
 int number[NUM]; /*Ų1993ȫ*/
 int fflag(int i);
 int main()
 {
 int i,j,count=0;
 printf("there are follwing primes sequences in first row:\n");
 for(j=0,i=3;i<=1993;i+=2) /*1993ȫ*/
 if(fflag(i)) number[j++]=i;
 for(jC;number[j]>1898;jC) /*ʼ1898*/
 {
 for(i=0;number[j]-number>1898;i++); /*ѭ*/
 if(number[j]-number==1898) /*ĲΪ1898*/
 printf("(%d).%3d,..,%d\n",++count,number,number[j]);
 }
 }

 int fflag(int i)
 {
 int j;
 if(i<=1) return 0; /*жǷΪ*/
 if(i==2) return 1;
 if(!(i%2)) return 0; /*if no, return 0*/
 for(j=3;j<=(int)(sqrt((double)i)+1);j+=2)
 if(!(i%j)) return 0;
 return 1;
 }

 *н
 There are follwing primes sequences in first row:
 (1).89,,1987
 (2).53,,1951
 (3). 3,,1901

 *˼
 1,23,2020ȻųһȦʹڵȻ֮;Ϊ

 35.÷

 Ľ׵÷һ4X4 ľУÿһ һ֣ʹÿһСÿһкԽ

 ϵ4 ɵλΪ

 *㷨
 ǰĻӦ˵ǲѵġ
 򵥵㷨ǣٷ趨4X4ÿһԪصֵжÿһСÿһкԽ

 4ɵλǷǿһ⡣
 㷨ԭǶԵģҲһȫ⡣ǣһ˼·ĳЧʺܵͣ

 ΢ϼСʱҲнһ㷨ȱǣҪٺжϵࡣ
 ĿеġÿһλǿһԷԾÿԪؽеٵ

 ȫλ(204)ԾΪλλķΧڽ٣Ȼ

 ٵλֽΪֺٽкͶԽ߷жϣĽ㷨㷨ȣ

 ؼٵĴ
 Ǿĵһкһ֣Ƿֱзλĵһֺһ֣Щ

 λҲǿԾÿһкһеĸֶΪż5پ

 һкһʱǵȡֵΧǣλ־ż5λڷһ

 λ٣һΧһμٵĴ
 㷨Ľһо֣ᷢ趨˵һ͵ڶеֵ󣬾ѾжϳǰǷһ

 Ǵ(вܿ϶һȷ)зϵĸλλǰλì(

 еһ)һеȡֵһǴġͬ趨ǰݺ󣬿жϳ

 ǰǷһǴģжϳìµһݡͿԱ

 ĸȫ趨ԺٽжɵĵЧ
 ϷαϸĽ㷨
 ʼ
 ҳȫλĿ
 ȷȫڵһһеλ
 ָΧ ٵһ
 ָΧٵڶ
 һڶѳìܣһ
 ָΧٵ
 жкͶԽǷǷ
 ⣬
 һ
 
 ʵʱУ˺ܶƼɣɸ飬ĿľҪ޶ȵ߳

 ִЧʣʱ䡣ĳЧǱȽϸߵġ

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int number[210][5]; /*ſֽĸλ*/
 int select[110]; /*Էھһкһе±*/ 
 int array[4][5]; /*4X4ľÿ0ԪشӦ±*/
 int count; /*Ŀ*/
 int selecount; /*ԷھһкһеĿĿ*/
 int larray[2][200]; /*ǰλʱӦ*/
 int lcount[2];
 int num(int number);
 int ok(int number);
 void process(int i);
 void copy_num(int i);
 int comp_num(int n);
 int find1(int i);
 int find2(void);
 int find0(int num);
 void p_array(void);

 int main()
 {
 int i,k,flag,cc=0,i1,i4;
 printf("there are magic squares with invertable primes as follw:\n");
 for(i=1001;i<9999;i+=2) /*Ŀ*/
 {
 k=i/1000;
 if(k%2!=0&&k!=5&&num(i)) /*ĵһλż5*/
 {
 number[count][0]=i; /**/
 process(count++); /*ֽĸλ*/
 if(number[count-1][2]%2!=0&& /*ھһ*/
 number[count-1][3]%2!=0&& /*һе¼*/
 number[count-1][2]!=5&& /*±꣬1*/
 number[count-1][3]!=5)
 select[selecount++]=count-1;
 }
 }
 larray[0][lcount[0]++]=number[0][0]/100; /*ʱĵһдǰλ*/
 larray[1][lcount[1]++]=number[0][0]/10; /*ʱĵڶдǰλ*/
 for(i=1;i<count;i++) /*ظǰλʱ*/
 {
 if(larray[0][lcount[0]-1]!=number[0]/100)
 larray[0][lcount[0]++]=number[0]/100;
 if(larray[1][lcount[1]-1]!=number[0]/10)
 larray[1][lcount[1]++]=number[0]/10;
 }
 for(i1=0;i1<selecount;i1++) /*ڵһĻΧ*/
 {
 array[0][0]=select[i1]; /*ȡӦ±*/
 copy_num(0); /*Ʒֽ*/
 for(array[1][0]=0;array[1][0]<count;array[1][0]++) /*ٵڶ*/
 {
 copy_num(1); /*Ʒֽ*/
 if(!comp_num(2))
 continue; /*ÿеǰλìܣ̽һ*/
 for(array[2][0]=0;array[2][0]<count;array[2][0]++) /*ٵ*/
 {
 copy_num(2); /*Ʒֽ*/
 if(!comp_num(3))
 continue; /*ÿеǰλìܣ̽һ*/
 for(i4=0;i4<selecount;i4++) /*һķΧ*/
 {
 array[3][0]=select[i4];
 copy_num(3); /*Ʒֽ*/
 for(flag=1,i=1;flag&&i<=4;i++) /*жÿǷ*/
 if(!find1(i))flag=0;
 if(flag&&find2()) /*ж϶ԽǷΪ*/
 { printf("No.%d\n",++cc); p_array(); } /*÷*/
 }
 }
 }
 }
 }

 int num(int number) /*жǷ*/
 {
 int j;
 if(!ok(number)) return 0;
 for(j=0;number>0;number/=10) /*Ϊ*/
 j=j*10+number%10;
 if(!ok(j)) return 0; /*жϷǷΪ*/
 return 1;
 }

 int ok(int number) /*жǷΪ*/
 {
 int i,j;
 if(number%2==0) return 0;
 j=sqrt((double)number)+1;
 for(i=3;i<=j;i+=2)
 if(number%i==0) return 0;
 return 1;
 }

 void process(int i) /*iֽΪֲ*/
 {
 int j,num;
 num=number[0];
 for(j=4;j>=1;jC,num/=10)
 number[j]=num%10;
 }

 void copy_num(int i) /*array[0]ָĸλָƵarray*/
 {
 int j;
 for(j=1;j<=4;j++)
 array[j]=number[array[0>[j];
 }

 int comp_num(int n) /*жarrayÿеǰnλǷǰnλì*/
 {
 static int ii; /*ڲ̬ǰһβҵԪ±*/
 static int jj; /*ii:ǰһβǰλ±꣬jj:ǰһβǰλ±*/
 int i,num,k,*p; /*p:ָӦҪʹõǰһ±iijj*/
 int *pcount; /*pcount:ָҪʹõʱļ*/
 switch(n){ /*nֵѡӦһƱ*/
 case 2:pcount=&lcount[0];p=&ii;break;
 case 3:pcount=&lcount[1];p=&jj;break;
 default:return 0;
 }
 for(i=1;i<=4;i++) /*зֱд*/
 {
 for(num=0,k=0;k<n;k++) /*ǰnλִֵ*/
 num=num*10+array[k];
 if(num<=larray[n-2][*p]) /*ǰһҵԪؽбȽ*/
 for(;*p>=0&&num<larray[n-2][*p];(*p)C);/*ǰβҵԪشǰ*/
 else
 for(;p<pcount&&num>larray[n-2][*p];(*p)++); /**/
 if(*p<0||*p>=*pcount)
 {
 *p=0; return 0;
 }
 if(num!=larray[n-2][*p])
 return 0; /*ǰnλǿֵ򷵻0*/
 }
 return 1;
 }

 int find1(int i) /*жзǷǿ*/
 {
 int num,j;
 for(num=0,j=0;j<4;j++)
 num=num*10+array[j];
 return find0(num);
 }

 int find2(void) /*ж϶Խ߷Ƿǿ*/
 {
 int num1,num2,i,j;
 for(num1=0,j=0;j<4;j++)
 num1=num1*10+array[j][j+1];
 for(num2=0,j=0,i=4;j<4;j++,iC)
 num2=num2*10+array[j];
 if(find0(num1)) return(find0(num2));
 else return 0;
 }

 int find0(int num) /*ǷΪҪĿ*/
 {
 static int j;
 if(num<=number[j][0])for(;j>=0&&num<number[j][0];jC);
 else for(;j<count&&num>number[j][0];j++);
 if(j<0||j>=count){ j=0;return 0; }
 if(num==number[j][0]) return 1;
 else return 0;
 }

 void p_array(void) /**/
 {
 int i,j;
 for(i=0;i<4;i++)
 {
 for(j=1;j<=4;j++) printf("%d ",array[j]);
 printf("\n");
 }
 }

 *Ľһ
 дھ緢ìܣѭʱ䡣ʵЧ൱ġĿ

 ǰĳȻԽһŻ
 趨ǰкδ趨оûҪʹٵķΪз趨õλѾ

 һֿܵȡֵڿҳǰλ趨õλͬЩ

 һǰ趨õλֵ¿ܵȡֵʱÿһֻвĸܵȡ

 ֵҳȫпܵȡֵ(ܵλ)ǵĽΪգûйͬĿ

 ȡֵм໥ìܷ򽫽е оĿһ⡣
 㷨ٽһŻһеݣȻ㷨ȷеֵɽһ

 СٵķΧЧʡ
 ĽԿĻֻ17֣ÿͨת뷴ͬ7⣬

 ԽһĽֻ17⡣



 *˼
 116һĽ׻÷Ҫе֮;Ϊ

 36.Ǯټ

 йŴѧġ㾭ġǮټ⡱һֵǮ壬ĸһ

 ֵǮֵǮһǮټ̡ĸΣ

 *㷨
 輦̡ĸĸֱΪx,y,z100ǮҪټȫ򹫼20ֻȻx

 ֵ0~20֮䣻ͬyȡֵΧ0~33֮䣬ɵõĲ̣
 5x+3y+z/3=100
 x+y+z=100
 ԴɹΪ̵⡣
 ɳʵ̵ֲֹ㲻ͬڷȷδ֪仯Χǰ£ͨ

 δ֪ɱ䷶Χ٣֤ʲô³ӶõӦĽ⡣

 *˵ע
 #include<stdio.h>
 int main()
 {
 int x,y,z,j=0;
 printf("Folleing are possible plans to buy 100 fowls with 100 Yuan.\n");
 for(x=0;x<=20;x++) /*ѭƼ*/
 for(y=0;y<=33;y++) /*ڲѭƼĸy0~33仯*/
 {
 z=100-x-y; /*ѭ£zֵx,yֵԼ*/
 if(z%3==0&&5*x+3*y+z/3==100)
 /*֤ȡzֵĺԼõһĺ*/
 printf("%2d:cock=%2d hen=%2d chicken=%2d\n",++j,x,y,z);
 }
 }

 *н
 Follwing are possible plans to buy 100 fowls with 100 Yuan.
 1:cock=0 hen=25 chicken=75
 2:cock=4 hen=18 chicken=78
 3:cock=8 hen=11 chicken=81
 4:cock=12 hen=4 chicken=84

 *Ľһ
 ⲻʵ֣ѭĿƱֱ뷽δ֪йأҲöδ֪ȡֵ

 ٺϵķǿܵõȫ⡣ܷѭ

 ٺϵĴִ߳Чʣ߿

 37.˹̹ѧ

 ˹̹һѧ⣺һݣÿ2ףʣһףÿ3 ףʣ2ףÿ5ףʣ4ףÿ6ʣ5סֻÿο7ףһײʣ

 ݹжٽף

 *㷨
 ⣬һͬʽ
 x1 (mod2)
 x2 (mod3)
 x4 (mod5)
 x5 (mod6)
 x0 (mod7)

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i=1; /*iΪĽ*/
 while(!((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)))
 ++i; /*һͬʽб*/
 printf("Staris_number=%d\n",i);
 }

 *н
 Staris_number=119

 *Ľһ
 㷨ɿ1245СnȻt(tΪn-1)0(mod7)Ƿ

 t=t+n,ٽбֱѡtֵбдʵ 

 38.ֱ

 һԪҶһ1֡2ֺ5ӲңжֲͬĶһ

 *㷨
 i,j,kֱΪһ1֡2֡5ӲеǮ()i,j,kֵӦ㣺
 i+j+k=100

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,k,count=1;
 printf("There are follwing small exchange plans for 1 Yuan note:\n");
 for(i=0;i<=100;i++) /*iΪ1ӲǮȡֵ0,12,100*/
 for(j=0;j<=100-i;j+=2) /*jΪ2ӲǮȡ0ֵ24100*/
 for(k=0;k<=100-i-2*j;k+=5) /*kΪ5ӲǮ*/
 if(i+j+k==100)
 printf(count%4?"%d:1*%d+2*%d+5*%d\t":"%d:1*%d+2*%d+5*%d\n",count++,i,j/2,k/5);
 } 



 39.伸

 ġ塢һȲУ˵26880ǵ

 Ϊǰ4ĵȲеǰ20

 *㷨
 еΪaǰ4֮Ϊ"4*n+6*a",ǰ4 ֮Ϊ"n*(n+a)*(n+a+a)*(n+a+a+a)"ͬ

 ʱ"1<=a<=4","1<=n<=6"ɲٷС

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n,a,i;
 printf("The series with equal difference are:\n");
 for(n=1;n<=6;n++) /*nȡֵΪ1~6*/
 for(a=1;a<=4;a++) /*aȡֵΪ1~4*/
 if(4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880) /*жϽ*/
 for(i=0;i<20;i++)
 printf("%d ",n+i*a); /*ǰ20*/
 }

 *н
 The series with equal difference are:
 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 

 40.ɫ

 һڴз123ġ3׵ĺ6\ģʴȡ8жֲͬɫ

 䣿

 *㷨
 ȡĺΪiΪj\Ϊ8-i-jͰȡֵΧ0~3

 ںͰȷ£\ȡֵӦΪ8-i-j<=6

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,count=0;
 printf(" RED BALL WHITE BALL BLACKBALL\n");
 printf("..\n");
 for(i=0;i<=3;i++) /*ѭƱiȡ03*/
 for(j=0;j<=3;j++) /*ѭƱjȡ03*/
 if((8-i-j)<=6)
 printf(" %2d: %d %d %d\n",++count,i,j,8-i-j);
 }





 41.˼ָеѧ

 ˼ָһȤζѧ⣺30ˣˡŮ˺СһҷݳԷ50ÿ˻3ÿŮ˻2ÿС1ˡŮ˺Смˣ
 *㷨
 x,y,zֱˡŮ˺СĿҪ󣬿ɵõķ̣
 x+y+z=30 (1)
 3x+2y+z=50 (2)
 ÷̳˲̵ķǸ⣬ͨ(2)1)ʽã
 2x+y=20 (3)
 (3)ʽ֪x仯Χ0~10


 *˵ע
 #include<stdio.h>
 int main()
 {
 int x,y,z,count=0;
 printf(" Men Women Children\n");
 printf("........................................\n");
 for(x=0;x<=10;x++)
 {
 y=20-2*x; /*xֵ(3)ʽy*/
 z=30-x-y; /*(1)ʽz*/
 if(3*x+2*y+z==50) /*ǰõһǷʽ(2)*/
 printf(" %2d: %d %d %d\n",++count,x,y,z);
 }
 } 

 42.ԼС

 Լ(GCD)С(LCM)


 *㷨
 ֹʽjԼķշתڳпģַʽ


 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,num1,num2,temp;
 printf("Input a & b:");
 scanf("%d%d",&num1,&num2);
 if(num1>num2) /*ҳеĽϴֵ*/
 {
 temp=num1; num1=num2; num2=temp; /**/
 }
 a=num1; b=num2;
 while(b!=0) /*շתԼ*/
 {
 temp=a%b;
 a=b;
 b=temp;
 }
 printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*Լ*/
 printf("The LCM of them is: %d\n",num1*num2/a); /*С*/
 }


 *н
 1.Input a & b: 20 55
 The GCD of 20 and 55 is: 5
 The LCM of them is: 220

 2.Input a & b: 17 71
 The GCD of 17 and 71 is: 1
 The LCM of them is: 1207

 3.Input a & b: 24 88
 The GCD of 24 and 88 is: 8
 The LCM of them is: 264

 4.Input a & b: 35 85
 The GCD of 35 and 85 is: 5
 The LCM of them is: 595



 *˼
 һСn(2<=n<=10)ǳģ(n-1)磺9ʱΪ8Ҫһ㷨ö23....910йص 


 43.Ƚ
 ȽĴС


 *㷨
 ˹ʽ±ȽϷСõķǣзֺͨȽϷӵĴСԱģʽʽ


 *˵ע
 #include<stdio.h>
 int zxgb(int a,int b);
 int main()
 {
 int i,j,k,l,m,n;
 printf("Input two FENSHU:\n");
 scanf("%d/%d,%d/%d",&i,&j,&k,&l); /**/
 m=zxgb(j,l)/j*i; /*һֺͨķ*/
 n=zxgb(j,l)/l*k; /*ڶֺͨķ*/
 if(m>n) printf("%d/%d>%d/%d\n",i,j,k,l); /*ȽϷӵĴС*/
 else if(m==n) printf("%d/%d=%d/%d\n",i,j,k,l); /*ȽϵĽ*/
 else printf("%d/%d<%d/%d\n",i,j,k,l);
 }

 int zxgb(int a,int b)
 {
 long int c;
 int d;
 if(a<b) c=a,a=b,b=c; /*a<b,򽻻ֵ*/
 for(c=a*b;b!=0;)
 {
 d=b; b=a%b; a=d;
 }
 return (int)c/a;
 }


 *н
 룺 4/56/7  4/5<6/7
 룺 8/416/32  8/4>16/32
 룺16/324/8  16/32=4/8 

 44.֮
 ĸȻp,q,r,s(p<=q<=r<=s)ʹµʽ 
 1/p+1/q+1/r+1/s=1


 *㷨
 涨p<=q<=r<=sԭʽͨ֡õ
 2<=p<5 p<=q<7 q<r<13
 򵥵ٷԺܷ⡣
 ע:
 #include<stdio.h>
 int main()
 {
 int p,q,r,s,count=0;
 printf("The 4 fractions which sum is equal 1 are:\n");
 for(p=2;p<5;p++) /*ٷĸ*/
 for(q=p;q<7;q++)
 for(r=q;r<13;r++)
 if(p*q*r-q*r-p*r-p*q!=0)
 {
 s=(p*q*r)/(p*q*r-q*r-p*r-p*q); /*sֵ*/
 if(!((p*q*r)%(p*q*r-q*r-p*r-p*q))&&s>=r)
 printf("[%2d] 1/%d+1/%d+1/%d+1/%d=1\n",++count,p,q,r,s);
 /**/
 }
 }


 *н







 *˼
 123456789Ÿֳַַʽ֮һÿֻһΣʹø÷պõһ
 ıʾʽ
 (ο𰸣ĳЩȻûֱʾʽ磺12341518ȡ10011ıʾʽ89ıʾʽ࣬36֣ʽУɱʾΪ794) 

 45.ֽΪ

 Ϊ1 ķΪһ뽫÷ֽΪ
 磺8/11=1/2+1/5+1/55+1/110



 *㷨
 ķaĸbͿԵõķӲĸԴԭķзֽһĸΪb/a+1İַʣಿַֽ⣬ɵõ



 *˵ע
 /*עԴ޸ģҪһѭֱӼİCtrl-C˳㷨û濴лл*/

 #include<stdio.h>
 int main(void)
 {
 long int a,b,c;
 while(true)
 {
 printf("Please enter a optional fraction(a/b):");
 scanf("%ld/%ld",&a,&b); /*aͷĸb*/
 printf("It can be decomposed to:");
 while(true)
 {
 if(b%a) /*Ӳĸ*/
 c=b/a+1; /*ֽһĸΪb/a+1İ*/
 else{ c=b/a; a=1;} /*()*/
 if(a==1)
 {
 printf("1/%ld\n",c);
 break; /*aΪ1־*/
 }
 else
 printf("1/%ld + ",c);
 a=a*c-b; /*ķ*/
 b=b*c; /*ķĸ*/
 if(a==3) /*Ϊ3*/
 { printf("1/%ld + 1/%ld\n",b/2,b); break;}
 }
 }

 return 0;
 }



 *н
 Please enter a optional fraction (a/b): 1/6
 It can be decomposed to: 1/6
 Please enter a optional fraction (a/b): 20/33
 It can be decomposed to: 1/2+1/10+1/165
 Please enter a optional fraction (a/b): 10/89
 It can be decomposed to: 1/9+1/801
 Please enter a optional fraction (a/b): 19/99
 It can be decomposed to: 1/6+1/40+1/3960
 Please enter a optional fraction (a/b): 8/87
 It can be decomposed to: 1/11+1/957
 ctrl-c˳

 46.г
 ˳гзĸΪ40С40


 *㷨
 ԷӲٷԼķжϷ40Ƿ񹹳


 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,num1,num2,temp;
 printf("The fraction serials with demominator 40 is:\n");
 for(i=1;i<=40;i++) /*40ڵȫ*/
 {
 num1=40;
 num2=i;
 while(num2!=0) /*շתԼ*/
 {
 temp=num1%num2;
 num1=num2;
 num2=temp;
 }
 if(num1==1) /*ԼΪ1Ϊ*/
 printf("%d/40 ",i);

 }
 }


 *н
 The fraction serials with demominator 40 is:
 1/40 3/40 7/40 9/40 11/40 13/40 17/40 19/40
 21/40 23/40 27/40 29/40 31/40 33/40 37/40 39/40



 *˼
 ˳гзĸСڵ40 

 47.ľȷֵ
 ʹ龫ȷM/N(0<M<N<=100)ֵM/NѭС㲢ĵһѭڣͬʱҪ ѭڵֹλ(Сλ)


 *㷨
 ڼֳƣĸ㶼оƣΪ˵õ߾ȵļͱʵַ
 Ϊʵָ߾ȵļ㣬ɽ̴һάУÿԪشһλʮ̵ĵһλڵһԪУ̵ĵڶλڵڶԪ....ơͿʹ鲻ʾһ߾ȵļ
 гʱģ˵ֹÿ̵ĵһλ󣬽10ټ̵һλظϹ̣ĳμΪ0 ʱʾM/NΪ޲ѭСĳμǰĳͬʱM/NΪѭСӸһγ֮õĸλСѭڡ
 ʵʱһЩõ̵ĸλ


 *˵ע
 #include<stdio.h>
 int remainder[101],quotient[101]; /*remainder:ų quotient:δ̵ÿһλ*/
 int main()
 {
 int m,n,i,j;
 printf("Please input a fraction(m/n)(<0<m<n<=100):");
 scanf("%d/%d",&m,&n); /*뱻ͳ*/
 printf("%d/%d it's accuracy value is:0.",m,n);
 for(i=1;i<=100;i++) /*i: ̵λ*/
 {
 remainder[m]=i; /*m: remainder[m]:Ӧ̵λ*/
 m*=10; /*10λ*/
 quotient=m/n; /**/
 m=m%n; /**/
 if(m==0) /*Ϊ0 ʾС*/
 {     
 for(j=1;j<=1;j++) printf("%d",quotient[j]); /**/
 break; /*˳ѭ*/
 }
 if(remainder[m]!=0) /*ӦλǰѾֹ*/
 {
 for(j=1;j<=i;j++) printf("%d",quotient[j]); /*ѭС*/
 printf("\n\tand it is a infinite cyclic fraction from %d\n",remainder[m]);
 printf("\tdigit to %d digit after decimal point.\n",i);
 /*ѭڵλ*/
 break; /*˳*/
 }
 }
 }


 *˼
 ʹʵּMXNľȷֵ 

 48. 
 ²μӻOΪABCΪXYZ˲֪˭˭飬ѯλеλĻشģA˵X飻X˵δCC˵Z顣֪ڿЦȫǼٻҳ˭˭顣


 *㷨
 ABC1,23ʾXAʾΪX=1YAʾΪY!=1Ŀедʽ
 x!=1 AX
 x!=3 XδC
 z!=3 CZ
 ⻹XYZﲻܽΪżУ
 x!=yx!=zy!=z
 пܵʽн㣬ʹʽĽΪ棬ȷĽ


 *˵ע
 #include<stdio.h>
 int main()
 {
 int x,y,z;
 for(x=1;x<=3;x++) /*xȫż*/
 for(y=1;y<=3;y++) /*yȫż*/
 for(z=1;z<=3;z++) /*zȫż*/
 if(x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z) /*жżǷ*/
 {
 printf("X will marry to %c.\n",'A'+x-1); /*ӡжϽ*/
 printf("Y will marry to %c.\n",'A'+y-1);
 printf("Z will marry to %c.\n",'A'+z-1);
 }
 }


 *н
 X will marry to B. (XB)
 Y will marry to C. (YC)
 Z will marry to A. (ZA) 

 49.ί
 ĳӽӵһҪABCDEFԱоܶˣ
 1)ABȥһˣ
 2)ADһȥ
 3)AEFҪȥ
 4)BCȥ򶼲ȥ
 5)CDȥһ
 6)DȥEҲȥ
 Ӧļȥ


 *㷨
 ABCDEFʾǷȥִ״ֵ̬Ϊ1ʾȥֵΪ0ʾ˲μִ񣬸дʽ
 a+b>1 ABȥһˣ
 a+d!=2 ADһȥ
 a+e+f==2 AEFҪȥ
 b+c==0b+c==2 BCȥ򶼲ȥ
 c+d==1 CDȥһ
 d+e==0d==1 DȥEҲȥ(ȥDȥE)
 ʽ֮ĹϵΪ롱ϵÿȥȥĸֿʽн㣬ʹʽΪ桱ȷĽ


 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c,d,e,f;
 for(a=1;a>=0;a--) /*ÿǷȥ*/
 for(b=1;b>=0;b--) /*1:ȥ 0:ȥ*/
 for(c=1;c>=0;c--)
 for(d=1;d>=0;d--)
 for(e=1;e>=0;e--)
 for(f=1;f>=0;f--)
 if(a+b>=1&&a+d!=2&&a+e+f==2
 &&(b+c==0||b+c==2)&&c+d==1
 &&(d+e==0||d==1))
 {
 printf("A will%s be assigned. \n",a?"":"not");
 printf("B will%s be assigned. \n",b?"":"not");
 printf("C will%s be assigned. \n",c?"":"not");
 printf("D will%s be assigned. \n",d?"":"not");
 printf("E will%s be assigned. \n",e?"":"not");
 printf("F will%s be assigned. \n",f?"":"not");
 }
 }


 *н
 A will be assigned. (ȥ)
 B will be assigned. (ȥ)
 C will be assigned. (ȥ)
 D will not be assigned. (ȥ)
 E will not be assigned. (ȥ)
 F will be assigned. (ȥ)



 *˼
 ĳιŰƴABCDEطѡɲι۵㣺
 1)ȥAȥB
 2)DEֻȥһأ
 3)BCֻȥһأ
 4)CDضȥ򶼲ȥ
 5)ȥEأADҲȥ
 ʸȥļط 

 50.˭˵
 ˵˵ѣ˵˵ѣ˵Ķ˵ѡʣе˭˵滰˭˵Ǽٻ


 *㷨
 Ŀÿ˶п˵滰Ҳп˵ǼٻҪÿ˵Ļзֱжϡ˵ĻñABCʾ1ʾ˵滰 ʾ˵ǼٻĿԵõ
 *˵˵ ˵滰a==1&&b==0
  ˵Ǽٻa==0&&b==1
 *˵˵ ˵滰b==1&&c==0
  ˵Ǽٻb==0&&c==1
 *˵Ķ˵ ˵滰c==1&&a+b==0
  ˵Ǽٻc==0&&a+b!=0
 ֮ǡ롱ĹϵʽͿɵõCԵıʽ
 (a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+b==0||!c&&a+b!=0)
 ÿ˵滰˵ٻĸֿʽн㣬ʹʽΪ桱ȷĽ


 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c;
 for(a=0;a<=1;a++)
 for(b=0;b<=1;b++)
 for(c=0;c<=1;c++)
 if((a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+b==0||!c&&a+b!=0))
 {
 printf("Zhangsan told a %s.\n",a?"truth":"lie");
 printf("Lisi told a %s.\n",b?"truch":"lie");
 printf("Wangwu told a %s.\n",c?"truch":"lie");
 }
 }


 *н
 Zhangsan told a lie (˵ٻ)
 Lisi told a truch. (˵滰)
 Wangwu told a lie. (˵ٻ)



 51.˭

 Աɷ֪˵нһ֪ÿҪôǳʵģҪô˵ѵġڻش𹫰ԱУ
 ˵û͵Ƕ͵ġ
 ˵û͵Ǳġ
 ˵û͵͵ġ
 ˵û͵
 ˵Ĵж˭ǵߡ

 *㷨
 ABCDֱĸˣֵΪ1
 Ŀ֪нһĸеÿҪô˵滰Ҫô˵ٻڼסҡ˶˵仰Xû͵X͵ˡʲ۸Ƿ˵ѣᵽбһС͵ʽʱԲ˭˵ѣ˭˵ʵгʽ
 ˵û͵Ƕ͵ġ B+D=1
 ˵û͵Ǳ͵С B+C=1
 ˵û͵͵ġ A+B=1
 ˵û͵ A+B+C+D=1
 жֻ˵һ仰޷ж٣ʽӳнһ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int i,j,a[4];
 for(i=0;i<4;i++) /*ٶֻеiΪ*/
 {
 for(j=0;j<4;j++) /*iΪ1ʾΪ0*/
 if(j==i)a[j]=1;
 else a[j]=0;
 if(a[3]+a[1]==1&&a[1]+a[2]==1&&a[0]+a[1]==1) /*жǷ*/
 {
 printf("The thief is "); /**/
 for(j=0;j<=3;j++) /**/
 if(a[j])printf("%c.",j+'A');
 printf("\n");
 }
 }
 }

 *н
 The thief is B. (Ϊ) 



 52.

 ABCDEˣÿ˶ͷ϶һźڻ׵ֽ˶ÿ˶Կ˶ͷϵֽɫ໥۲
 A˵ҿ˶ͷǰֽһ˶ͷǺֽ
 B˵ҿ˶ͷĶǺֽ
 C˵ҿһ˶ͷǰֽ˶ͷǺֽ
 D˵ҿ˶ͷĶǰֽ
 EʲôҲû˵
 ֪ͷֽ˵Ķǻѻͷֽ˵Ķʵ˭Ķͷֽ˭Ķͷֽ

 *㷨
 ABCDEʾÿ˶ͷֽɫ0 Ǻɫ1 ǰɫĿABCD˵Ļܽйϵ
 A˵ a&&b+c+d+e==3||!a&&b+c+d+e!=3
 B˵ b&&a+c+d+e==0||!b&&a+c+d+e!=0
 C˵ c&&a+b+d+e==1||!c&&a+b+d+e!=1
 D˵ d&&a+b+c+e==4||!d&&a+b+c+e!=4
 ÿ˶ͷֽɫпܵʽн㣬ʹʽΪ桱ȷĽ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c,d,e;
 for(a=0;a<=1;a++) /*ɫ0 ɫ1*/
 for(b=0;b<=1;b++) /*˶ͷֽȫ*/
 for(c=0;c<=1;c++)
 for(d=0;d<=1;d++)
 for(e=0;e<=1;e++)
 if((a&&b+c+d+e==3||!a&&b+c+d+e!=3)
 &&(b&&a+c+d+e==0||!b&&a+c+d+e!=0)
 &&(c&&a+b+d+e==1||!c&&a+b+d+e!=1)
 &&(d&&a+b+c+e==4||!d&&a+b+c+e!=4))
 {
 printf("A is pasted a piece of %s paper on his forehead.\n",
 a?"white":"black");
 printf("B is pasted a piece of %s paper on his forehead.\n",
 b?"white":"black");
 printf("C is pasted a piece of %s paper on his forehead.\n",
 c?"white":"black");
 printf("D is pasted a piece of %s paper on his forehead.\n",
 d?"white":"black");
 printf("E is pasted a piece of %s paper on his forehead.\n",
 e?"white":"black");
 }
 }

 *н
 A is pasted a paper of black paper on his forehead. ()
 B is pasted a paper of black paper on his forehead. ()
 C is pasted a paper of white paper on his forehead. ()
 D is pasted a paper of black paper on his forehead. ()
 E is pasted a paper of white paper on his forehead. ()

 53.ﲩʿ(1)

 ʵ˵ĵĲͬ壬ʵԶ˵滰˵Զ˵ٻﲩʿǸˣҪжĸġ
 ﲩʿˣ֪ǿԳʵ˵ġΪ˵ʲôģʿֱǵ⣬ǵĶԻ
 ʵһˣʲô壿𣺡֮Գʵ塣ڶ˵Ҫ˵ֻһǳʵġ˵ڶ˵Ļ˵ԣֻһʵġ
 ĻشжǷֱĸġ

 *㷨
 ˷ֱΪABC˵ֵΪ0ʵֵΪ1Ŀ˵Ļɷֱг
 һˣ a&&a+b+c==2||!a&&a+b+c!=2
 ڶˣ b&&a+b+c==1||!b&&a+b+c!=1
 ˣ c&&a+b+c==1||!c&&a+b+c!=1
 ٷԺ׵Ƴ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c;
 for(a=0;a<=1;a++) /*ÿ˵ѻǳʵȫ*/
 for(b=0;b<=1;b++) /*˵ѣ0 ʵ1*/
 for(c=0;c<=1;c++)
 if((a&&a+b+c==2||!a&&a+b+c!=2) /*жǷ*/
 &&(b&&a+b+c==1||!b&&a+b+c!=1)
 &&(c&&a+b+c==1||!c&&a+b+c!=1))
 {
 printf("A is a %s.\n",a?"honest":"lier"); /*жϽ*/
 printf("B is a %s.\n",b?"honest":"lier");
 printf("C is a %s.\n",c?"honest":"lier");
 }
 }

 *н
 A is a lier (˵)
 B is a lier (˵)
 C is a lier (˵)

 *˼
 ﲩʿĸˣ֪ǿԳʵ˵ġΪ˵ĸʲôģʿѯʣʲôģ
 һ˵ȫ˵ġ
 ڶ˵ֻ֮һ˵ġ
 ˵˵ġ
 ˵ǳʵġ
 Գǡʵ塱ĵĸǷǳʵģ
 (𰸣ĸǳʵġ) 

 54.ﲩʿ(2)

 ǻĵϵһ壬ǵص˵һһٽ档һΪ棬ڶǼٵģһΪٵģڶģǵһǼûйɡ
 ﲩʿˣ֪Ƿֱͬ壺ʵ塢˵塣˲վڲʿǰ档
 ʿߵˣмʲôģߵ˻ش𣺡ʵġ
 ʿмˣʲôģм˻ش𣺡ġ
 ʿұߵˣм˾ʲôģұߵ˻ش𣺡˵ġ
 ʣ˶ĸģ

 *㷨
 ⣬ǰֻгʵ˵ҪӡʱҪʹñֱʾ
 A=1ʾߵǳʵ(CԱʾΪA)
 B=1ʾмǳʵ(CԱʾΪB)
 C=1ʾұߵǳʵ(CԱʾΪC)
 AA=1ʾߵ(CԱʾΪAA)
 BB=1ʾм(CԱʾΪBB)
 CC=1ʾұߵ(CԱʾΪCC)
 ߵ˵ԱʾΪA!=1AA!=1 (ǳʵ)
 CԱʾΪ!A&&!AA
 м˵ԱʾΪB!=1BB!=1
 CԱʾΪ!B&&!BB
 ұߵ˵ԱʾΪC!=0CC!=1
 CԱʾΪ!C&&!CC
 ĿС塱г
 a+aa!=2&&b+bb!=2&&c+cc!=2  a+b+c==1&&aa+bb+cc==1
 ˵ĻشƳǳʵ壬мҲǳʵ壻ǳʵ壬мҲǳʵ塣ԱʾΪ
 c&&!b&&!bb||(!c&&!cc)&&(b||bb)||!c&&cc
 ȫ߼һٵķ⣬ʹͬʱıȡֵĿĴ𰸡

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c,aa,bb,cc;
 for(a=0;a<=1;a++) /*ȫ*/
 for(b=0;b<=1;b++)
 for(c=0;c<=1;c++)
 for(aa=0;aa<=1;aa++)
 for(bb=0;bb<=1;bb++)
 for(cc=0;cc<=1;cc++)
 if(a+aa!=2&&b+bb!=2&&c+cc!=2&& /*ж߼*/
 a+b+c==1&&aa+bb+cc==1 &&
 (a&&!aa&&b&&!bb||!a&&!b)&&
 !b &&
 (c&&!b&&!bb||(!c&&!cc)&&(b||bb)||!c&cc))
 {
 printf("The man stand on left is a %s.\n",
 aa?"doubleCdealer"a?"honest":"lier"));
 printf("The man stand on left is a %s.\n",
 bb?"doubleCdealer"b?"honest":"lier"));
 printf("The man stand on left is a %s.\n",
 cc?"doubleCdealer"c?"honest":"lier")); 
 /*յ*/
 }
 }

 *н
 The man stand on left is a doubleCdealer. (ߵ)
 The man stand on center is a lier. (м˵)
 The man stand on right is a honest. (ұߵǳʵ)

 *˼
 ﲩʿˣʵһˣʲôģش𣺡ʵġʵڶˣʲôģ𣺡˵ġʿʵڶˣһǳʵ𣿡𣺡ǵġʵˣʲôģ𣺡ʵġʿʵˣһʲôģ𣺡ġ
 ж˵ĸģ
 (𰸣һǳʵģڶģ˵塣) 

 55.ĸֵ

 ҽԺABCDEFGλһ(һ)ÿҪֵһ졣֪
 ACһֵࣻ
 DEֵࣻ
 BGֵࣻ
 FֵBCм䣬ģ
 ȷÿ쾿λֵࣿ

 *㷨
 ĿƳ֪
 *Fֵࣻ
 *BֵһGֵࣻ
 *CֵһAֵࣻ
 *EDֵࣻEֵֻһ
 ڱʱԪص±17ʾһ죬ԪصֱֵʾA~Fλ

 *˵ע
 #include<stdio.h>
 #include<stdlib.h>
 int a[8];
 char *day[]={"","MONDAY","TUESDAY","WEDNESDAY","THURSDAYT",
 "FRIDAY","SATUDAY","SUNDAY"}; /* ڱ*/
 int main()
 {
 int i,j,t;
 a[4]=6; /*Fֵ*/ 
 for(i=1;i<=3;i++)
 {
 a=2; /*Bֵ*/
 if(!a[i+3]) a[i+3]=7; /*ֵGֵ*/
 else{ a=0;continue;} /*Bֵڲ϶*/
 for(t=1;t<=3;t++) /*Eֵʱ*/
 {
 if(!a[t]) a[t]=5; /*ֵEֵ*/
 else continue;
 if(!a[t+2]) a[t+2]=4; /*EֵֵӦΪD*/
 else{ a[t]=0;continue;} /*Eֵڲ*/
 for(j=5;j<7;j++)
 {
 if(!a[j]) a[j]=3; /*ֵ࣬Cֵ*/
 else continue;
 if(!a[j+1]) a[j+1]=1; /*C֮һֵӦAֵ*/
 else{ a[j]=0;continue;} /*Aֵڲ*/
 for(i=1;i<=7;i++) /*ϣ*/
 printf("Doctor %c is on duty %s.\n",'A'+a-1,day);
 exit(0);
 }
 }
 }
 }

 *н
 Doctor E is on duty MONDAY. (һE)
 Doctor B is on duty TUESDAY. (ڶB)
 Doctor D is on duty WEDNESDAY. (D)
 Doctor F is on duty THUESDAY. (ģF)
 Doctor G is on duty FRIDAY. (壺G)
 Doctor C is on duty SATURDAY. (C)
 Doctor A is on duty SUNDAY. (գA)

 *˼
 ڱУֻһ֮ڵûпǿܵڡBGֵġֻǼ򵥵Ϊͬһ졣ǿܵͿ֣ܳBһֵ࣬Gܵ塣ͬԡFֵBCм䡱ҲչΪֻҪFֵBCмͿԡ
 뿼ܵ£ܵʱ䰲ű



 56.ÿ͹

 һùסͬˣǷֱ¹Ӣ˹ǵֽABCDEFֵ˳Ĺһ໥Ӧġ֪
 1)Aҽ
 2)EͶ˹Ǽʦ
 3)C͵¹Ǽʦ
 4)BF¹˴δι
 5)˱A˱C
 6)BͬҪȥУCͬҪȥݶȼ١
 ֪ABCDEFĹˣ

 *㷨
 ȽĿ֪ȷ˭Ĺˡ
 ɣ1) 2) 3)֪AˣEǶ˹ˣCǵ¹ˡΪA¹˵ְҵͬE˵ְҵͬC˵ְҵͬAǶ˹˻¹ˣE˻¹ˣC˻˹ˡ
 4)5)֪BFǵ¹ˣAǷˣCˡ
 6)֪BˣҲǷ(B뷨ܵеص㲻ͬ)CǷˡ
 ϽܿԵõ
 . (ҽ) Ӣ  (ʦ)  (ʦ) 
 A(ҽ) X . X X . X 
 B X . X X . . 
 C(ʦ) X . X X X X 
 D . . . . . . 
 E(ʦ) X . . X . X 
 F . . . X . . 

 ݴ˱ʹԪ⣬ԷصõĴ𰸡
 óʵȥ㷨Ǻ׵ġ

 *˵ע
 #include<stdio.h>
 char *m[7]={" ","U.S","U.K","FRANCE","GER","ITALI","EUSSIAN"}; /**/
 int main()
 {
 int a[7][7],i,j,t,e,x,y;
 for(i=0;i<7;i++) /*ʼ*/
 for(j=0;j<7;j++) /*ΪˣΪңԪصֵʾĳǸù*/
 a[j]=j;
 for(i=1;i<7;i++) /*ÿһеĵ0ԪΪݴı*/
 a[0]=1; /*Ǹδ*/
 a[1][1]=a[2][1]=a[3][1]=a[5][1]=0; /*еĸ*/
 a[1][3]=a[2][3]=a[3][3]=0; /*0ʾǸù*/
 a[1][4]=a[2][4]=a[3][4]=a[5][4]=a[6][4]=0;
 a[3][5]=0;
 a[1][6]=a[3][6]=a[5][6]=0;
 while(a[0][1]+a[0][2]+a[0][3]+a[0][4]+a[0][5]+a[0][6]>0)
 { /*оϺ˳ѭ*/
 for(i=1;i<7;i++) /*i:*/
 if(a[0]) /*δд*/
 {
 for(e=0,j=1;j<7;j++) /*j: e:з0Ԫؼ*/
 if(a[j]) { x=j;y=i;e++;}
 if(e==1) /*ֻһԪΪ㣬ȥ*/
 {
 for(t=1;t<7;t++)
 if(t!=i)a[x][t]=0; /*ԪڵеԪ0*/
 a[0][y]=0; /*øѴϵı*/
 }
 }
 }
 for(i=1;i<7;i++) /**/
 {
 printf("%c is coming from ",'A'-1+i);
 for(j=1;j<7;j++)
 if(a[j]!=0)
 { printf("%s.\n",m[a[j>); break;}
 }
 }

 *н
 A is coming from ITALY. ()
 B is coming from EUSSIAN. (˹)
 C is coming from U.K.. (Ӣ)
 D is coming from GER. (¹)
 E is coming from FRANCE. ()
 F is coming from U.S.. ()

 *Ľһ
 ȻʹȥжһֳõķڽΪӵ߼ʮЧġ

 *˼
 ʦһû˵ʡݵйͼѡʡ15ţҪдʡݵơλͬѧÿֻ˶ʡݵ£ÿֻһʡȷʲô
 A 25Ÿ B 2ź4ɽ
 C 1ɽ5ż D 3ź4ż
 E 2Ÿ࣬3

 57.˭Һ



 ҸСһ죬ҵľŸһܣ涨Сܵһ9֣ܵ28֣ơҵܷͬЩûͬʱյģҲûһҵӻΡ֪һҵĺӣõڶҵĺӡʻһ˭ҵĺӣ

 *㷨
 Ŀ1+2+3++9=45֣ÿҵĺӵĵ÷ӦΪ15֪֡һҵĺӣڶҵĺӣƳһżҵĺӡɡЩûͬʱյġ֪βܲУɡûһҵӻΡ֪żҵĺӡ
 Ϊ˷ֱ÷ʾ

 *˵ע
 #include<stdio.h>
 int score[4][4];
 int main()
 {
 int i,j,k,who;
 score[1][1]=7; /*֪гʼscore[1]:żӵĵ÷*/ 
 score[2][1]=8; /*score[2]:ӵĵ÷*/
 score[3][1]=9; /*ӵĵ÷*/
 for(i=4;i<6;i++) /*i:żҺ46ֶοܵķ*/
 for(j=4;j<7;j++) /*j:Һ46ֶοܵķ*/
 for(k=4;i!=j&&k<7;k++) /*k:Һ46ֶοܵķ*/
 if(k!=i&&k!=j&&15-i-score[1][1]!=15-j-score[2][1] /*ܲ*/
 &&15-i-score[1][1]!=15-k-score[3][1]
 &&15-j-score[2][1]!=15-k-score[3][1])
 {
 score[1][2]=i;score[1][3]=15-i-7; /*Ľ*/
 score[2][2]=j;score[2][3]=15-j-8;
 score[3][2]=k;score[3][3]=15-k-9;
 }
 for(who=0,i=1;i<=3;i++,printf("\n"))
 for(j=1;j<=3;j++)
 {
 printf("%d",score[j]); /*Һӵĵ÷*/
 if(score[j]==1)who=i; /*¼һļͥ*/
 }
 if(who==1) /*жϵĽ*/
 printf("The last one arrived to end is a child from family Zhang.\n");
 else if(who==2)
 printf("The last one arrived to end is a child from family Wang.\n");
 else printf("The last one arrived to end is a child from family Li.\n");
 }

 *н
 7 5 3
 8 6 1
 9 4 2
 The last one arrived to end is a child from family Wang.
 (һҵĺӡ

 58.

  NXN ׵(2<=N<=9)ʹеÿһкÿһ1NֻһΡN=4ʱ
 1 2 3 4
 2 3 4 1
 3 4 1 2
 4 1 2 3

 *㷨
 ķܶ࣬򵥵һַ۲ӣԷ֣ÿ һеһеֺһеһû1N˳򹹳ɣڵiУĿʼΪi ˹ɿԺ׵д6ĳ

 *˵ע
 #include<stdio.h>
 #define N 6 /*ȷNֵ*/
 int main()
 {
 int i,j,k,t;
 printf("The possble Latin Squares of order %d are:\n",N);
 for(j=0;j<N;j++) /*Nͬ*/
 {
 for(i=0;i<N;i++)
 {
 t=(i+j)%N; /*ȷi еĵһԪصֵ*/
 for(k=0;k<N;k++) /*ջʽеĸԪ*/
 printf("%d",(k+t)%N+1);
 printf("\n");
 }
 printf("\n");
 }
 }

 *н
 The possble Latin Squares of order 6 are:
 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2
 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3
 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4
 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
 5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6
 6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1

 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
 5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6
 6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1
 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2
 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3
 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 



 59.

 123456 ±УҪʹÿһұߵֱߵִÿһֱִ󡣰Ҫ󣬿мд
       
       




 *㷨
 ĿҪз1һǷڵһеһеĸУ6һǷڵڶееĸСʵʱһһάʾǰԪرʾһУԪرʾڶСȸԭʼ飬ٸĿ дֵҪ̽

 *˵ע
 #include<stdio.h>
 int jud1(int s[]);
 void print(int u[]);
 int count; /**/
 int main()
 {
 static int a[]={1,2,3,4,5,6}; /*ʼ*/
 printf("The possble table satisfied above conditions are:\n");
 for(a[1]=a[0]+1;a[1]<=5;++a[1]) /*a[1]a[0]*/
 for(a[2]=a[1]+1;a[2]<=5;++a[2]) /*a[2]a[1]*/
 for(a[3]=a[0]+1;a[3]<=5;++a[3]) /*ڶеa[3]a[0]*/
 for(a[4]=a[1]>a[3]?a[1]+1:a[3]+1;a[4]<=5;++a[4])
 /*ڶеa[4]a[3]ϱa[1]*/
 if(jud1(a)) print(a); /*⣬ӡ*/
 }

 int jud1(int s[])
 {
 int i,l;
 for(l=1;l<4;l++)
 for(i=l+1;i<5;++i)
 if(s[l]==s) return 0; /*еظģ0*/
 return 1; /*еûظģ1*/
 }

 void print(int u[])
 {
 int k;
 printf("\nNo.:%d",++count);
 for(k=0;k<6;k++)
 if(k%3==0) /*ǰԪΪһ*/
 printf("\n%d",u[k]);
 else /*ĺԪΪڶ*/
 printf("%d",u[k]);
 }

 *н
 The possble table satisfied above conditions are:
 No.1: No.2: No.3: No.4: No.5:
 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5
 4 5 6 3 5 6 3 4 6 2 5 6 2 4 6 



 60.1~9ֳ1233λ

 19 Ÿֳַ3λһ3λǵڶ3λĶǵ3λӦַ

 *㷨
 е֮ѧϵģʵֻҪȷһλͿԽ⡣
 ̽һλ֮󣬼ֱֽλ֣жϺȷ̽ǷǴ𰸡
 Ҫѵǣ̽ĳֵ123ֵ333Ϊܳ÷Χ
 *
 #include<stdio.h>
 int ok(int t,int *z);
 int a[9];
 int main()
 {
 int m,count=0;
 for(m=123;m<=333;m++) /*̽ܵλ*/
 if(ok(m,a)&&ok(2*m,a+3)&&ok(3*m,a+6)) /**/
 printf("No.%d: %d %d %d\n",++count,m,2*m,3*m); /**/
 }

 int ok(int t,int *z) /*ֽtֵzָԪأҪ󷵻1*/
 {
 int *p1,*p2;
 for(p1=z;p1<z+3;p1++)
 {
 *p1=t%10; /*ֽ*/
 t/=10;
 for(p2=a;p2<p1;p2++) /*ѯֽǷѾֹ*/
 if(*p1==0||*p2==*p1)return 0; /*ظ򷵻*/
 }
 return 1; /*򷵻1*/
 }

 *н
 No.1:192 384 576
 No.2:219 438 657
 No.3:273 546 819
 No.4:327 654 981

 *˼
 пܵʽʽÿʽоŸλþ19Ÿ֡
 1)+= (168ֿܵ)
 2)= (2ֿܵ)
 3)= (7ֿܵ)
 4)= (13ֿܵ)
 5)= (28ֿܵ)
 6)= (7ֿܵ)
 7)= (11ֿܵ)







 61.1~93λƽ



 123456789Ÿֳַ飬ÿֻһΣÿظ֣ҲͬظҪÿеλһƽ

 *㷨
 ˼·ܶ࣬һּ򵥿ٵ㷨
 λв0ĳƽλλǲġȻλϣʹѡ3λ9ûظ
 пԽѰλĹ̺ͶԸλַֽĹ̽

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a[20],num[20][3],b[10]; /*a:λ*/
 /*10 ıֽλ*/
 /*ֽλеÿһ*/
 int i,j,k,m,n,t,flag;
 printf("The 3 squares with 3 different digits each are:\n");
 for(j=0,i=11;i<=31;i++) /*ƽλ*/
 if(i%10!=0) /*10ıֽλ*/
 {
 k=i*i; /*ֽλеÿһ*/
 num[j+1][0]=k/100; /*λ*/
 num[j+1][1]=k/10%10; /*ʮλ*/
 num[j+1][2]=k%10; /*λ*/
 if(!(num[j+1][0]==num[j+1][1]||num[j+1][0]==num[j+1][2]||
 num[j+1][1]==num[j+1][2])) /*ֽλ־*/
 a[++j]=k; /*j:ͳҵҪλ*/
 }
 for(i=1;i<=j-2;++i) /*λѡ*/
 {
 b[1]=num[0];
 b[2]=num[1];
 b[3]=num[2];
 for(t=i+1;t<=j-1;++t)
 {
 b[4]=num[t][0]; /*ȡtλ*/
 b[5]=num[t][1];
 b[6]=num[t][2];
 for(flag=0,m=1;!flag&&m<=3;m++) /*flag:ظı*/
 for(n=4;!flag&&n<=6;n++) /*жǷظ*/
 if(b[m]==b[n])flag=1; /*flag=1:ظ*/
 if(!flag)
 for(k=t+1;k<=j;k++)
 {
 b[7]=num[k][0]; /*ȡkλ*/
 b[8]=num[k][1];
 b[9]=num[k][2];
 for(flag=0,m=1;!flag&&m<=6;m++) /*жǰǷ*/
 for(n=7;!flag&&n<=9;n++) /*ظ*/
 if(b[m]==b[n])flag=1;
 if(!flag) /*ظӡ*/
 printf("%d,%d,%d\n",a,a[t],a[k]);
 }
 }
 }
 }

 *н
 The 3 squares with 3 different digits each are:
 361,529,784

 *˼
 123456789Ÿֳַɶ飬ÿֻһΣһγһ5λһγһ4λʹǰΪߵn5λ4λ(ע⣺Nֵ68,68ڵĳЩNҲǲܵġܵNֵ110112021253031ȹ32)



 62.8γص

 88ֱһİ˸ϣҪÿϵĸ֮ȡ

 *㷨
 ⣺8Ӧе8Ԫأÿϵĸ֮ͽȡתΪ֮͵ȹϵĹؼȷؽ88ԪضӦ
 ü򵥵ٷ8ȫС

 *˵ע
 #include<stdio.h>
 #include<stdlib.h>
 int main()
 {
 int a[9],ii=0,i,a1,a2,a3,a4,b1,b2,b3,b4,flag;
 for(i=1;i<=8;i++) /**/
 {
 printf("Please enter [%d]number:",i);
 scanf("%d",&a);
 ii+=a;
 }
 printf("******************************************\n");
 if(ii%2) /*Ϊ8*/
 {
 printf("Sorry they can't be constructed required cube!\n");
 exit(0);
 }
 for(flag=0,a1=1;a1<=8;a1++) /*flag:ɱ.flag=1;ʾ*/
 for(a2=1;a2<=8;a2++) /*ðѭ˸ȫ*/
 if(a2!=a1) /*ǰͬ*/
 for(a3=1;a3<=8;a3++) 
 if(a3!=a2&&a3!=a1) /*ǰͬ*/
 for(a4=1;a4<=8;a4++)
 if(a4!=a3&&a4!=a2&&a4!=a1) /*ǰĸͬ*/
 for(b1=1;b1<=8;b1++)
 if(b1!=a4&&b1!=a3&&b1!=a2&&b1!=a1) /*ͬ*/
 for(b2=1;b2<=8;b2++)
 if(b2!=b1&&b2!=a4&&b2!=a3&&b2!=a2&&b2!=a1)
 for(b3=1;b3<=8;b3++)
 if(b3!=b2&&b3!=b1&&b3!=a4&&b3!=a3&&b3!=a2&&b3!=a1)
 /*ȡͬ*/
 for(b4=1;b4<=8;b4++)
 if(b4!=b2&&b4!=b1&&b4!=b3&&b4!=a4&&b4!=a3&&b4!=a2&&b4!=a1)
 if(a[b1]+a[b2]+a[b3]+a[b4]==ii/2
 &&a[a1]+a[a2]+a[b1]+a[b2]==ii/2
 &&a[a1]+a[a4]+a[b1]+a[b4]==ii/2)
 {
 flag=1;goto out; /*flag1˳*/
 }
 out:
 if(flag)
 {
 printf("They can be constructed required cube as follow:\n");
 printf(" /%2d/%2d\n",a[a4],a[a3]);
 printf(" %2d/%2d/|\n",a[a1],a[a2]);
 printf(" | | | |\n");
 printf(" | | | |\n");
 printf(" | %2d| | |%2d\n",a[b4],a[b3]);
 printf(" /./\n");
 printf(" %2d/.%2d/\n",a[b1],a[b2]);
 }
 else printf("Sorry they can't be constructed required cube!\n");
 }

 *н
 Please enter [1] number:20
 Please enter [2] number:45
 Please enter [3] number:39
 Please enter [4] number:25
 Please enter [5] number:29
 Please enter [6] number:7
 Please enter [7] number:3
 Please enter [8] number:2
 Sorry they can't be constructed required cube! 

 *˼
 нȫеķЧ̫ͣ㷨Ȼ򵥵ࡣµ㷨ͬĹ 

 63.ʽԭ



 дʽиĸ֣ͬĸͬ֡
 PEAR
 - ARA
 C
 PEA

 *㷨
 ƵӼ㷨ĽǶ˵ǱȽϼ򵥵ģԲٷвѭÿĸܴ֣ȻĸתΪӦʽ֤ʽǷɽ⡣

 *˵ע
 #include<stdio.h>
 int main()
 {
 int p,e,a,r;
 for(p=1;p<=9;p++) /*19ĸpȫȡֵ*/
 for(e=0;e<=9;e++) /*0ĸeȫȡֵ*/
 if(p!=e) /*pe*/ 
 for(a=1;a<=9;a++) /*09ĸaȫȡֵ*/
 if(a!=p&&a!=e) 
 for(r=0;r<=9;r++) /*09ĸrȫȡֵ*/
 if(r!=p&&r!=e&&r!=a&&p*1000+e*100+a*10+ra*100+r*10+a)
 ==p*100+e*10+a)
 {
 printf(" PEAR %d%d%d%d\n",p,e,a,r);
 printf(" -ARA - %d%d%d\n",a,r,a);
 printf(".\n");
 printf(" PEA %d%d%d\n",p,e,a);
 }
 }

 *н
 PEAR 1098
 - ARA - 989
 - 
 PEA 109

 *˼
 븴ԭĺʽͬĸͬ֡
 SEVEN 82524 82526
 THREE 19722 19722
 + TWO 𰸣 + 106 + 104
 - C C
 TWELVE 102352 102352

ղ

1
0

֧



	ظ  

 

	
Anderson 


ʿ


133 

69  
Ǯ
229  

1  

0  
ʱ
292 Сʱ 
עʱ
2010-9-4 
	2#
  2010-9-8 20:34 | ֻ C/c++Ȥζ(׸C/C++ѧ)


 64.ʽԭ

 A09еǰ֣Z֣뻹ԭгʽ
 A Z A
  A A Z
 
 A A A A
 A A Z Z
 Z A A
 
 Z A Z A A

 *㷨
 ⱾӣԶԳʽеÿһλʹٷտԵõĹؼЧжÿֻÿһλǷ⣬һ⴦ãдĳܳʵвһжϺͨ뺯ı־ַеͳһжϴ

 *˵ע
 #include<stdio.h>
 void print(long a,long b,long s1,long s2,long s3);
 int jud(long q,char *pflag);
 int main()
 {
 long i,j,k,l,m,n,term,t1,t2,t3;
 int flag;
 for(i=0;i<=4;++i) /*ĵһλ*/
 for(j=5;j<=9;++j) /*ĵڶλ*/
 for(k=0;k<=4;++k) /*ĵλ*/
 {
 term=100*i+10*j+k; /**/
 for(flag=0,n=0;n<4&&!flag;) /*ĵһλ*/
 flag=jud((t3=++n*100*term)/100,"001"); /*жϵֻ*/
 if(flag)
 {
 for(flag=0,m=0;m<4&&!flag;) /*ĵڶλ*/
 flag=jud((t2=++m*10*term)/10,"1100"); /*жϵڶֻ*/
 if(flag)
 {
 for(flag=0,l=5;l<9&&!flag;) /*ĵλ*/
 flag=jud(t1=++l*term,"0000"); /*жϵһֻ*/
 if(flag&&jud(t1+t2+t3,"00101")) /*жϳʽĻ*/
 print(term,n*100+m*10+l,t1,t2,t3);
 }
 }
 }
 }

 void print(long a,long b,long s1,long s2,long s3) /*ӡ*/ 
 {
 printf("\n %ld\n",a);
 printf("*) %ld\n",b);
 printf(".\n");
 printf(" %ld\n %ld\n %ld\n",s1,s2/10,s3/100);
 printf(".\n");
 printf(" %ld\n",a*b);
 }
 int jud(long q,char *pflag) /*жһÿһλǷҪжϺ*/
 /*q:Ҫжϵpflag:־ַA1ʾZ0ʾ־˳򣺸ʮ١*/
 {
 while(q!=0&&*pflag!=NULL) /*ѭж϶ӦλȡֵΧǷȷ*/
 if(*pflag-'0'!=(q%10>=5?1:0)) /*־λӦλ0*/
 return 0;
 else 
 {
 q/=10;++pflag; /*ȡһλж*/
 }
 if(q==0&&*pflag==NULL) /*qλ־ַĳͬʱ1*/
 return 1;
 else return 0;
 }

 *н
 3 7 2
  2 4 6
 -
 2 2 3 2
 1 4 8 8
 7 4 4
 
 9 1 5 1 2



 *˼
 E09еż֣O֣뻹ԭгʽ
 E E O 2 8 5
  O O   3 9
 C C
 E O E O 2 5 6 5
 E O O 8 5 5
 C C
 O O O O O 1 1 1 1 5 

 65.ʽԭ(2)

 г˷ʽ£
 
  
 
 
 
 
  
 18λȫ(1357)뻹ԭʽ

 *㷨
 Ȼ18λֻҪȷͱ󾭹Ϳȷλ
 ͱ5λҪÿȫԲٵķԳͱ٣жϺҳ𰸡ַ˵ĸоǡ̫ˡΪɵֻ(4)ȫûбҪôķΧڽ٣ֻҪ̽ÿһλΪʱɡ
 ѭķʵֶ5ֵ٣ǰжѼѭʵּУǶ׵Ĳ̫࣬ҪٵıֱӰ쵽ѭǶ׵Ĳּ򵥵ʵַȱټԡĳиһͬܵ㷨㷨ʵ˼Ķ
 вûֱӶ٣ǽÿ14˳һһӦʱΪ򵥽14ٴҪжϲĳ˻ǷʱһӦתеĴʹõ㷨ʵǻ˷

 *˵ע
 #include<stdio.h>
 #define NUM 5 /*ҪٵıĿ*/
 #define C_NUM 4 /*ÿֵı仯Χ*/
 int a[NUM+1]; /*ΪҪٵıٵ*/
 /*a[1]:İλa[2]ʮλ,aa[3]:λ a[4]:ʮλ a[5]:λ*/
 int b[]={0,2,3,5,7}; /*ֵ飬ʹõ0Ԫ*/
 int f(long sum);

 int main()
 {
 int i,not_finish=1;
 i=2; /*i:ҪдԪصָ±ꡣóʼֵ*/
 a[1]=1; /*Ϊ1Ԫóʼֵ*/
 while(not_finish) /*not_finish:û*/
 {
 while(not_finish&&i<=NUM)
 /*iԪڵĺԪأҳǰµһָһֿܵȡֵ*/
 if(a>=C_NUM) /*ҪԪȡ涨C_NUMʱ*/
 if(i==1&&a[1]==C_NUM)
 not_finish=0; /*1ԪѾC_NUMȫ*/
 else a[iC]=0; /*ҪԪ0±-1(һԪ)*/
 else a[i++]++; /*ǰԪֵ1±ָ1*/
 if(not_finish)
 {
 long int sum1,sum2,sum3,sum4; /*ʱ*/
 sum1=b[a[1>*100+b[a[2>*10+b[a[3>; /*㱻*/
 /*±ĶӦϵ14ת*/
 sum2=sum1*b[a[5>; /*λ뱻Ĳֻ*/
 sum3=sum1*b[a[4>; /*ʮλ뱻Ĳֻ*/
 if(sum2>=2222&&sum2<=7777&&f(sum2)&&sum3>=2222&&sum3<=7777&&f(sum3))
 /*жֻǷĿ*/
 if((sum4=sum2+sum3*10)>=22222&&sum4<=77777&&f(sum4))
 /*жϳʽĻǷĿ*/
 {
 printf(" %d\n",sum1); /*⣬ӡ*/ 
 printf("* %d%d\n",b[a[4>,b[a[5>);
 printf("\n");
 printf(" %d\n",sum2);
 printf(" %d\n",sum3);
 printf("\n");
 printf(" %d\n",sum4);
 }
 i=NUM; /*Ϊһȡֵ׼*/
 }
 }
 }
 int f(long sum) /*жsumÿһλǷǷ0Ƿ1*/
 {
 int i,k,flag; /*flag=1:ı*/
 while(sum>0) 
 {
 i=sum%10; /*ȡλ*/
 for(flag=0,k=1;!flag&&k<=C_NUM;k++)
 if(b[k]==i)
 {
 flag=1;break;
 }
 if(!flag) return 0;
 else sum=sum/10;
 }
 return 1;
 }

 *н
 7 7 5
  3 3
 -
 2 3 2 5
 2 3 2 5
 C
 2 5 5 7 5



 *˼
 ³ʽУABCһȷ֣֣븴ԭ
 A B C 2 8 6
  B A C  8 2 6
 - 𰸣 
  1 7 1 6
 A 5 7 2
 B 2 2 8 8
 - -
  2 3 6 2 3 6 

 66.ʽԭ(1)

 гʽа57֣Իԭ

  7  C
 C
 | -
 7 7
 C
  7 
  7 
 -
  
  
 -
 

 *㷨
 ȷĿɳʽܶƳ֪ɳʽ֪
 1ķΧ1000099999ķΧ1099ҿ
 2Ϊ100999֮䣬ʮλΪ7
 3̵ĵһλĻΪλҺλΪ77
 4ĵλһΪ4
 5 7ԳĻΪһλҵڶλΪ7
 6̵һλΪ0ĻΪһλ
 ֪ͿԲٵķҳ

 *˵ע
 #include<stdio.h>
 int main()
 {
 long int i;
 int j,l;
 for(i=10000;i<=99999;i++) /*1. i:*/
 if(i%1000-i%100==400) /*4. ĵλһΪ4*/
 for(j=10;j<=99;j++) /*1. j: */
 if(i%j==0&&(l=i/j)%100>=70&&l%100<80&&l%10!=0&&l>100&&l<=999)
 /*1. && 2.l100999֮ʮλΪ7&&6.̵ĸΪ0*/
 if((j*(l%10))<100&&j*(l%10)>10) /*6. ̵ĸĻΪλ*/
 if(j*7%100>=70&&j*7%100<80) /*5. 7ԳĻĵڶλΪ7*/
 if(j*(l/100)%100==77&&j*(l/100)>100)
 /*̵ĵһλĻĺλΪ77*/
 printf("%ld/%ld=%d\n",i,j,l);
 }

 *н
 51463/53=971 
 ԿΪʽ

 9 7 1
 -
 5 3| 5 1 4 6 3
 4 7 7
 -
 3 7 6
 3 7 1
 C
 5 3
 5 3
 C
 

 *Ľһ
 Ƴ֪УеʮԵģ仰˵Ƴ֪ǶĿƽֱ֪ķʮּ򵥣֮Ч

 *˼
 гʽнһ8λ֣뻹ԭ

  8  -
 -
 -| 
 
 
 
 
 
 
 
 
  



 67.ʽԭ(2)

 гʽниһ7λȫ֣뻹ԭ

 7 -
  
  -|  -
  -1)
  
  -2)
  -3)
 
  -4)
  -5)
 C
  -6)
  -7)
 C
 0

 *㷨
 ǲõٷģһʱ̫ʽиֵֵ
 ԳʽзĿܶƳ
 3)Կ̵ĵڶλ7˳һλԳ<=142
 ɳ̵ĵһλΪһλ̵֪ĵһλֻΪ89ҳ>=112ͬʱ̵ĵλҲΪ89ǰλһ<=142*9+99>=1000+10
 4)5)6)Կ4)ǰλһΪ105)ĵһλһΪ96)ǰλһ1099֮䣻̵ĵλһΪΪ0
  5)ĵһλһǡ9͡112<=<=142̵֪ĵλΪ78
 ɳʽ̵֪ĵλΪ0
  1)֪X̵ĵһλӦΪһλ
  5)֪X̵ĵλӦΪһλ
 ʱΪ˷㣬ֽ⣺ǰλa[0]ʾλa[1]λa[2]߰λa[3];ñbʾֽ̣һλc[0]λc[2];Ĳ̷ֱʾΪ2)ǰλΪd[0]4)ǰλΪd[1]6)ǰλΪd[2]ѧķۺԱʾΪ
  1010<=a[0]<=1377 0<=a[1]<=9
 0<=a[2]<=9 0<=a[3]<=99
  112<=b <=142
 ̣ 8<=c[0]<=9 7<=c[1]<=8 8<=c[2]<=9
 2)ǰλ 10<=d[0]<=99
 4)ǰλ 100<=d[1]<b
 6)ǰλ 10<=d[2]<=99
 1)ʽֻ b*c[0]>1000
 5)ʽֻ 100<b*c[1]<1000

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a[4],b,c[3],d[4],i=1;
 for(a[0]=1010;a[0]<=1377;a[0]++)
 for(b=112;b<=142;b++)
 for(c[0]=8;c[0]<=9;c[0]++)
 if(b*c[0]>1000&&(d[0]=a[0]-b*c[0])>=10&&d[0]<100)
 for(a[1]=0;a[1]<=9;a[1]++)
 if((d[1]=d[0]*10+a[1]-b*7)>=100&&d[1]<b)
 for(a[2]=0;a[2]<=9;a[2]++)
 for(c[1]=7;c[1]<=8;c[1]++)
 if(b*c[1]<1000&&(d[2]=d[1]*10+a[2]-b*c[1])>=10&&d[2]<100)
 for(a[3]=0;a[3]<=99;a[3]++)
 for(c[2]=8;c[2]<=9;c[2]++)
 if(d[2]*100+a[3]-b*c[2]==0)
 {
 printf("No%2d:",i++);
 printf("%d%d%d%d%d/",a[0],a[1],a[2],a[3]/10,a[3]%10);
 printf("%d=",b);
 printf("%d%d%d%d%d\n",c[0],7,c[1],0,c[2]);
 }
 }
 *н
 No 1:12128316/124=97809

 *˼
 гʽСڵλȫ֣뻹ԭ
 
 -
  | 
 
 
 
 
 
 
 
 C
 
 
 C
 0 

 68.λ۽ɳ

 λ۽ɳνλ۽ɳһõ19ŸɣÿָպֻһΡŸλǰλܱ2ǰλܱ3ǰNλܱNλܱ9

 *㷨
 ⱾԼΪһ⣺ֻҪÿλֵĸֿȡֵĿҪٵĽжϾһԵõȷĽ
 иˡ۽ɳһʹǿٷмжϡٵĹУȷλֵϾжϲĸòǷϡ۽ɳϣһλ֣ողһλ־Ǵġж뵽ٷ֮УԾķìܣطҪٵֵӶִ߳Чʡ
 Ϊ˴ﵽڷìܵĿģܲöѭķʵ٣ĳϲʹõ㷨ٷǻ˷

 *˵ע
 #include<stdio.h>
 #define NUM 9
 int a[NUM+1];
 int main()
 {
 int i,k,flag,not_finish=1;
 long sum;
 i=1;
 /*i:ڴԪأʾǰi-1ԪѾҪǵiԪ*/
 a[1]=1; /*ΪԪa[1]óֵ*/
 while(not_finish) /*not_finish=1:ûн*/
 {
 while(not_finish&&i<=NUM)
 {
 for(flag=1,k=1;flag&&k<i;k++)
 if(a[k]==a)flag=0; /*жϵiԪǷǰi-1Ԫظ*/
 for(sum=0,k=1;flag&&k<=i;k++)
 {
 sum=10*sum+a[k];
 if(sum%k)flag=0; /*жǰkλɵǷܱk*/
 }
 if(!flag) /*flag=0:ʾiλҪҪ*/
 {
 if(a==a[i-1]) /*aֵѾһȦ׷a[i-1]*/
 {
 iC; /*iֵ1˻شǰһԪ*/
 if(i>1&&a==NUM)
 a=1; /*iλֵﵽNUMʱiλֵȡ1*/
 else if(i==1&&a==NUM) /*1λֵﵽNUMʱ*/
 not_finish=0; /*ó*/
 else a++; /*iλֵȡһ,1*/
 }
 else if(a==NUM) a=1;
 else a++;
 }
 else /*iλѾҪ󣬴i+1λ*/
 if(++i<=NUM) /*i+1һԪأiûдʱ*/
 if(a[i-1]==NUM) a=1; /*i-1ֵΪNUMaֵΪ1*/
 else a=a[i-1]+1; /*aĳֵΪa[i-1]ֵ"һ"ֵ*/
 }
 if(not_finish)
 {
 printf("\nThe progressire divisiable number is:");
 for(k=1;k<=NUM;k++) /**/
 printf("%d",a[k]);
 if(a[NUM-1]<NUM) a[NUM-1]++;
 else a[NUM-1]=1;
 not_finish=0;
 printf("\n");
 }
 }
 }

 *н
 The progressire divisible number is: 381654729

 *˼
 Nλ۽ɳ19ŸһN(3<=N<=9)λλֵɲޣʹøNλǰλܱ2ǰ3λܱ3ǰNλܱNNλ



 69.ħʦĲ(1)

 ħʦһе13źңԤȽźúһ泯¡Թ˵ҲƣֻͿԲµÿʲôҴţǾͿħʦΪ1ǺAAϣȻ˳ϵϵƣڶ12һƷƵ棬ڶƷǺ2Ҳϣ123ǰηƵ棬ٷǺ3νн13ȫ׼ȷħʦеԭʼ˳ŵģ

 *㷨
 ĿѾħʦƵĹǿõƵķ׵ƳԭƵ˳
 ˹ƵķǣϷ13պųһȦ1ʼ˳ţA1źУһպӿʼԿյĺӼڶպʱ2պУȻٴһպӿʼԿպӼ˳345ֱȫ3ơעڼʱҪǿյĺӣֻԿպӼںе˳򣬾ħʦԭƵ˳
 ˹ķ֮Чģģ⡣

 *˵ע
 #include<stdio.h>
 int a[14];
 int main()
 {
 int i,n,j=1; /*j:()±꣬ʼʱΪ1Ԫ*/
 printf("The original order of cards is:");
 for(i=1;i<=13;i++) /*i:ҪеƵ*/
 {
 n=1;
 do{
 if(j>13) j=1; /*ںӹһȦjһԪָ1Ԫ*/
 if(a[j]) j++; /*ǿյĺӣм*/
 else{ if(n==i) a[j]=i; /*iպӣƷպ*/
 j++;n++; /*Կպм±ָһ*/
 } 
 }while(n<=i); /*ƿպмΪi*/
 }
 for(i=1;i<=13;i++) /*Ƶ˳*/
 printf("%d ",a);
 printf("\n");
 }

 *н
 The original order of cards is:1 8 2 5 10 3 12 11 9 4 7 6 13

 70.ħʦĲ(2)

 ħʦٴαݣҺͺȫһ泯·УԹ˵һǺAϡԺ󣬴ÿȫη£ŸڿǺ2Ϻη£ŸڿǺ3ȥڿƵ˳ǣ
  A 2 3 4 5 6 7 8 9 10 J Q K
  A 2 3 4 5 6 7 8 9 10 J Q K
 ħʦƵԭʼ˳ʲô

 *㷨
 ĻϽб̣ͬڼķƵЩӰĿ˼·ԿɰյƵķõԭħʦеƵ˳

 *˵ע
 #include<stdio.h>
 int a[27];
 int main()
 {
 int i,n,j=1;
 a[1]=1; /*ʼһ*/
 printf("The original order of cards isr:rad b:block):\n");
 for(i=2;i<=26;i++)
 {
 n=1;
 do{ 
 if(j>26) j=1; /*һԪָ1Ԫ*/
 if(a[j]) j++; /*ǿյĺӣм*/
 else{
 if(n==3) a[j]=i; /*3պӣƷպ*/
 j++; n++; /*Կպм±ָһ*/
 }
 }while(n<=3); /*ƿպмΪ3*/
 }
 for(i=1;i<=26;i++) /*Ƶ˳*/
 {
 printf("%c",a>13? 'r':'b');
 printf("%d ",a>13? a-13:a);
 if(i==13) printf("\n");
 }
 printf("\n");
 }

 *н
 The original order of cards isr:rad b:black):
 b1 r6 b10 b2 r12 r3 b3 b11 r9 b4 r7 b12 b5
 r4 r13 b6 b13 r11 b7 r5 r1 b8 r8 r10 b9 r2






 71.Լɪ

 17͵ķѧҼ˹ڡĿϷ⡷нһ£15ͽ15 ǽͽգ뽫һͶ뺣У˲ѣһ취30ΧһԲȦӵһ˿ʼαÿھŸ˾ͽ󺣣ѭֱ15ΪֹŷʹÿͶ󺣵ĶǷǽͽ

 *㷨
 ԼɪⲢѣķܶࣻĿı仯ʽҲܶࡣһʵַ
 Ŀ30ΧһȦһѭʾʹýṹһѭṹԱһΪָһ˵ָ룬ԹɻεΪ ǷºıǣΪ1ʾڴϡӵһ˿ʼԻδº˽мÿ9ʱṹеıǸΪ0ʾѱºˡѭֱ15˱ºΪֹ

 *˵ע
 #include<stdio.h>
 struct node
 {
 int nextp; /*ָһ˵ָ(һ˵±)*/
 int no_out; /*Ƿºıǡ1ûбº0ѱº*/
 }link[31]; /*30ˣ0Ԫûʹ*/
 int main()
 {
 int i,j,k;
 printf("The original circle is(+:pagendom,@:christian):\n");
 for(i=1;i<=30;i++) /*ʼṹ*/
 {
 link.nextp=i+1; /*ָָһ(Ԫ±)*/
 link.no_out=1; /*־Ϊ1ʾ˶ڴ*/
 }
 link[30].nextp=1; /*30˵ָָһԹɻ*/
 j=30; /*j:ָѾϵԪأlinkָ˿ʼ*/
 for(i=0;i<15;i++) /*i:º*/
 {
 for(k=0;;) /*k:ĸ˱ºļ*/
 if(k<15)
 {
 j=link[j].nextp; /*޸ָ룬ȡһ*/
 k+=link[j].no_out; /*мº˼ƱΪ0*/
 }
 else break; /*15ֹͣ*/
 link[j].no_out=0; /* 0ʾѱº*/
 }
 for(i=1;i<=30;i++) /**/
 printf("%c",link.no_out? '@':'+'); /*+:º @ڴ*/
 printf("\n");
 }

 *н
 The original circle is(+:pagandom, @:christian):
 +++@@+@+@@@+@+++@@+@@@+++@+@@+
 (+"ʾºķǽͽ @ڴϻĽͽ)

 *˼
 NСΧ һȦαţʦָӵMСʼSССȻһӼSСУֱеĺӶССеȺ˳

 72.Ʊ

 ĳ3ֵƱ5ֵƱЩƱеһŻſԵõֲͬʣ
 *㷨 
 ѧֵͬƱɵʿйʽ㣺
 S=3*i+5*j
 iΪ3͵jΪ5ֵ
 ĿҪ3ֵƱȡ01234ţ5ֵƱȡ0123šٷϣЩֵͬͬʱϺʡ

 *˵ע
 #include<stdio.h>
 int a[27];
 int main()
 {
 int i,j,k,s,n=0;
 for(i=0;i<=4;i++) /*i:ȡƱ*/
 for(j=0;j<=3;j++) /*j:ȡ5Ʊ*/
 {
 s=i*3+j*5; /*ɵƱֵ*/
 for(k=0;a[k];k++) /*Ƿͬ*/
 if(s==a[k])break;
 if(!a[k]&&s) /*ûҵͬҪ*/
 {
 a[k]=s; n++;
 }
 }
 printf("%d kinds:",n); /**/
 for(k=0;a[k];k++)
 printf("%d ",a[k]);
 printf("\n");
 }

 *н
 19 kinds: 5 10 15 3 8 13 18 6 11 16 21 9 14 19 24 12 17 22 27 

 73.ܱʾ1~235

 ֪֮ͬΪ23ҴѡɸԱʾ123֮ڵȫȻʲô

 *㷨
 ӼƵĽǶ˵ٷֽ23ȻжֽǷԱʾ123 ֮ȫ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c,d,e,i,j,k,l,m,x,count=0,f=0; /*f:ֽ5Աʾ1~23ı*/
 printf("There are following possble result:\n");
 for(a=1;a<=23;a++) /*23ֽΪa,b,c,d,e*/
 for(b=1+a;b<=23-a;b++)
 for(c=1+b;c<=23-a-b;c++)
 for(d=1+c;d<=23-a-b-c;d++)
 {
 f=1;
 if((e=23-a-b-c-d)>d)
 for(f=0,x=1;x<24&&!f;x++) /*ж5ɷʾ1~23*/
 for(f=1,i=0;i<2&&f;i++) /*5ȫȡ*/ 
 for(j=0;j<2&&f;j++)
 for(k=0;k<2&&f;k++)
 for(l=0;l<2&&f;l++)
 for(m=0;m<2&&f;m++)
 if(x==a*i+b*j+c*k+d*l+e*m) f=0;
 if(!f) printf("[%d]: %d %d %d %d %d\n",++count,a,b,c,d,e);
 }
 }

 *н
 There are following possble result:
 [1]: 1 2 3 5 12
 [2]: 1 2 3 6 11
 [3]: 1 2 3 7 10
 [4]: 1 2 4 5 11
 [5]: 1 2 4 6 10
 [6]: 1 2 4 7 9 

 74.ɳ1~404

 ѧ÷ǿġϷ(1962)һ⣺һλһ40룬һ첻СĽˤĿ顣˳ƵÿҷĿƬƽϳ140֮ĿƬض٣

 *㷨
 һķչĿиǡƽϡζţͬһȿԷƽ࣬ҲԷƽҲࡣ涨ֻܷƽ࣬ƽƽʱУ
 +ܺ=Ҳܺ
 ɴ˿ɵã
 =Ҳܺ-ܺ
 ʱֻҪϹʽʹҲܺ-ܺ͡Աʾ140֮ȫɡҪעǣһּ򵥵ķʾһƽ໹ƽҲ࣬Ǹûʹá
 ³1 -10ֱʾע⡣

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 int weight1,weight2,weight3,weight4,d1,d2,d3,d4,x,flag; /*flag:ı*/
 printf("The weight is broke up as following 4 pieces:");
 for(weight1=1;weight1<=40;weight1++) /*40ֽ4*/
 for(weight2=weight1+1;weight2<=40-weight1;weight2++)
 for(weight3=weight2+1;weight3<=40-weight1-weight2;weight3++)
 if((weight4=40-weight1-weight2-weight3)>=weight3)
 {
 for(flag=1,x=1;x<41&&flag;x++) /*жϿɷƳ1~40֮ȫ*/
 for(flag=0,d1=1;d1>-2;d1C) /*ƽ*/
 for(d2=1;d2>-2&&!flag;d2C) /*1:ƽұ*/
 for(d3=1;d3>-2&&!flag;d3C) /*0ø*/
 for(d4=1;d4>-2&&!flag;d4C) /*-1:ƽ*/
 if(x==weight1*d1+weight2*d2+weight3*d3+weight4*d4)
 flag=1;
 if(flag) printf("%d %d %d %d\n",weight1,weight2,weight3,weight4);
 flag=0; 
 }
 }

 *н
 The weight is broke up as following 4 pieces: 1 3 9 27 

 75.10Сǹ

 ʮСΧһȦǹʦָһС10飬ڶС2飬С8飬ĸС22飬С16飬С4飬߸С10飬ڰ˸С6飬ھŸС14飬ʮС20顣ȻеСͬʱеǷһұߵСǿΪ˿ʦҪһ顣ʾκеǵĿһࣿÿ˸жٿǣ

 *㷨
 Ŀķǹһеظ̣㷨ȫ԰Ĺ̽ģ⡣

 *˵ע
 #include<stdio.h>
 void print(int s[]);
 int judge(int c[]);
 int j=0;
 int main()
 {
 static int sweet[10]={10,2,8,22,16,4,10,6,14,20}; /*ʼ*/
 int i,t[10],l;
 printf(" child\n");
 printf(" round 1 2 3 4 5 6 7 8 9 10\n");
 printf("..\n");
 print(sweet); /*ÿǵĿ*/
 while(judge(sweet)) /*Ҫѭ*/
 { 
 for(i=0;i<10;i++) /*ÿеǷֳһ*/
 if(sweet%2==0) /*Ϊżֱӷֳһ*/
 t=sweet=sweet/2;
 else /*Ϊ1ٷֳһ*/
 t=sweet=(sweet+1)/2;
 for(l=0;l<9;l++) /*ֳһǸ()ߵĺ*/
 sweet[l+1]=sweet[l+1]+t[l];
 sweet[0]+=t[9];
 print(sweet); /*ǰÿе*/
 }
 }
 int judge(int c[])
 {
 int i;
 for(i=0;i<10;i++) /*жÿеǷͬ*/
 if(c[0]!=c) return 1; /*ͬ 1*/
 return 0;
 }
 void print(int s[]) /*ÿԪصֵ*/
 {
 int k;
 printf(" %2d ",j++);
 for(k=0;k<10;k++) printf("%4d",s[k]);
 printf("\n");
 } 

 76.С

 Сְͬһȥ꣬ѡ飬ÿĵ۷ֱΪ3.11.725.30.97.2ɵǣСİְֻʮǮΪСһļڣְȻͬ飬ʹһҪҪСѡɱʹõõĺͬ10ӽܹС

 *㷨
 ⣬ɽĿΪѡɸͣʹú10ĲֵС
 Ŀ⣬һѡɸ10Ĳ
 ѡɸʵǴѡɸϡÿϹֻҪôѡвμͣҪôûѡвμ͡ͿʹѭÿǷμͽȫϡ
 10ĲֵӦעǣֵĺָľֵ磺9-10=-1""11-10=1",91110Ĳֵ1Ϊ9롱10ĲֵΪ-1ʹˡ

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 int d[6],m,i,j;
 long b[63],flag;
 float c[6],min,x;
 printf("Please enter the prices of 6 books:");
 for(i=0;i<6;i++) scanf("%f",&c); /**/
 for(i=0,min=-1,d[0]=0;d[0]<2;d[0]++) /*ȫϲ*/
 for(d[1]=0;d[1]<2;d[1]++) /*i:ֵminϵ*/
 for(d[2]=0;d[2]<2;d[2]++) /*min:10Сֵ*/
 for(d[3]=0;d[3]<2;d[3]++) /*d[]:ʱǷȡı־*/
 for(d[4]=0;d[4]<2;d[4]++)
 for(d[5]=0;d[5]<2;d[5]++)
 {
 for(flag=0,x=0,j=5;j>=0;jC) 
 /*flag:öӦһʮλʾ x:Ӧϵĺ*/
 {
 x+=c[j]*d[j]; flag=flag*10+d[j];
 }
 x=((x-10>0)? x-10:10-x); /*x: ϵĺ10Ĳ*/
 if(min<0)
 {
 min=x; /*ԵһμĲminд*/
 b[i++]=flag; /*b[]:ͬminflag i:b[]±*/
 }
 else if(min-x>1.e-6) /*µminĴ*/
 {
 min=x; b[0]=flag; i=1;
 }
 else if(fabs((double)x-min)<1.e-6)
 b[i++]=flag; /*minĴ*/
 }
 for(m=0;m<i;m++) /*ȫi10ĲֵΪmin*/
 {
 printf("10(+ -)%.2f=",min);
 for(flag=b[m],j=0;flag>0;j++,flag/=10)
 if(flag%10) /*b[]дıflagԭΪ*/
 if(flag>1) printf("%.2f+",c[j]);
 else printf("%.2f\n",c[j]);
 }
 }

 *н
 Please enter the prices of 6 books:3.1 1.7 2.0 5.3 0.9 7.2
 10(+ -)0.10=2.00+0.90+7.20
 10(+ -)0.10=1.70+2.00+5.30+0.90
 10(+ -)0.10=3.10+1.70+5.30

 *˼
 Կܲȫϵ㷨ãʹѭдʹԵòࡣƳͨáŻ㷨ȫϡ



 77.߾Ƶķ־Ȥ

 ѧҲڱʱоһȤѧ⣺ĳ12Ʒѵơһƿе6Ʒѣû6Ʒѵһ8ƷѺ5ƷѵܽơƷΪ6Ʒأ

 *㷨
 12ƷѾ 8ƷѺ5ƷѵĿƿƽ֣ԳΪⲻ̣
 8x-5y=6
 ǣ12Ʒѵƿ8ƷѵƿеxΣҽ5Ʒƿеľ12ƷѵƿеyΣ12Ʒѵƿʣ6Ʒѵľơ
 a,b,c12Ʒѡ8ƷѺ5Ʒѵƿӣ̵⣬ղ̵򵹷Ϊ
 a -> b -> c ->a
 x y
 ƵĹ£
 1) a -> b -> c ->a˳
 2) bպܴaȡ
 3) cװaе
 ϹԱд£

 *˵ע
 #include<stdio.h>
 void getti(int a,int y,int z);
 int i; /*Ҫֳ*/
 int main()
 {
 int a,y,z;
 printf("input Full a,Empty b,c,Get i:"); /*a ƿ y:һƿ z:ڶƿ*/
 scanf("%d%d%d%d",&a,&y,&z,&i);
 getti(a,y,z); /*a -> y -> z -> aĲ*/
 getti(a,z,y); /*a -> z -> y -> aĲ*/
 }
 void getti(int a,int y,int z) /*a:ƿ y:һƿ z:ڶƿ*/
 {
 int b=0,c=0; /* b:һƿʵʵ c:ڶƿʵʵ*/
 printf(" a%d b%d c%d\n %4d%4d%4d\n",a,y,z,a,b,c);
 while(a!=i||b!=i&&c!=i) /*ƿ!=iƿ!=i*/
 {
 if(!b)
 { a-=y; b=y;} /*һƿΪգƿһƿ*/
 else if(c==z)
 { a+=z; c=0;} /*ڶƿ򽫵ڶƿƿ*/
 else if(b>z-c) /*һƿ>ڶƿʣռ*/
 { b-=(z-c);c=z;} /*װڶƿһƿбʣಿ*/
 else{ c+=b; b=0;} /*򣬽һƿȫڶƿ*/
 printf(" %4d %4d %4d\n",a,b,c);
 }
 }

 *˼
 ĳнַ־Ƶķûҳȫķµ㷨ҳȫķ־Ʒҳһֵƴٵķ 

 78.еĽֵ

 áαƽķеĽֵ

 *㷨
 áαƽķֵںǰʹڣǵַ֮ϵһõȷȴС6λĦֵġ
 Բڽα߳ڰ뾶ص㽫ʮΣ߳ظһ̣Ϳɻ辫ȵĦеĽֵ
 赥λԲڽӶεı߳Ϊ2bΪiӱµεı߳Ϊ
 x=̩
 2-2*̩
 1-b*b
 
 2
 ܳΪ 
 y=2 * i * x i:Ϊӱǰεı

 *˵ע
 #include<stdio.h>
 #include<math.h>
 int main()
 {
 double e=0.1,b=0.5,c,d;
 long int i; /*i: α*/
 for(i=6;;i*=2) /*αӱ*/
 {
 d=1.0-sqrt(1.0-b*b); /*Բڽεı߳*/
 b=0.5*sqrt(b*b+d*d);
 if(2*i*b-i*e<1e-15) break; /*ȴ1e-15ֹͣ*/
 e=b; /*汾εı߳ΪһξȿƵ*/
 }
 printf("pai=%.15lf\n",2*i*b); /*ֵεı*/
 printf("The number of edges of required polygon:%ld\n",i);
 }

 *н
 pai=3.141592653589794
 The number of edges of required polygon:100663296

 *˼
 αƽķеĽֵ

 79.еĽֵ(2)

 еĽֵ

 *㷨
 еĽֵ˼·һλ߳УԱ߳Ϊ뾶һΪԲģȨķ֮һԲӵ㣬ķ֮һԲظ㹻ĵ㣬ķ֮һԲڵļܵĵֵǦֵķ֮һĽֵ
 ˷ֱӽб̣ע⣺Ħֵֻͳƴ㹻ʱſ׼ȷ

 *˵ע
 #include<time.h>
 #include<stdlib.h>
 #include<stdio.h>
 #define N 30000
 int main()
 {
 float x,y;
 int c=0,d=0;
 randomize();
 while(c++<=N)
 {
 x=random(101); /*x:ꡣ0100֮乲101*/
 y=random(101); /*y:ꡣ0100֮乲101*/
 if(x*x+y*y<=10000) /*ԲжϵǷԲ*/
 d++;
 }
 printf(" pi=%f\n",4. *d/N); /*Ħֵ*/
 }

 *н
 г򣬿ܵõͬĶԿڹΪõͳƹĽֵֻеͳƵĴ㹻ʱſܱƽֵĴΣܵĽǣ
 3.122267
 3.139733
 3.133733

 80.ƽһȤ

 ֤1000ƽ1Ĳ8ı

 *㷨
 һ֤ѧǿԱд֤
 ĿиĴ̺㷨Ҫơ԰Ŀֱӽ֤(н֤3000)

 *˵ע
 #include<stdio.h>
 int main()
 {
 long int a;
 for(a=1001;a<=3000;a+=2)
 {
 printf("%ld:",a); /**/
 printf("(%ld*%ld-1)/8",a,a); /*(ƽ1)/8*/
 printf("=%ld",(a*a-1)/8); /*8*/
 printf("+%ld\n",(a*a-1)%8); /*8*/
 }

 }






 81.ǹȲ

 ձһλѧһġǹȽ֤ΪǲǹȲ롣ǣθһȻΪż2Ϊ31õһµȻķ㣬ɴκõĽȻΪ1֤

 *㷨
 һδһ֤Ĳ룬Բˬó֤
 ĿиĴ̺㷨ƣɰĿֱӽ֤

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n,count=0;
 printf("Please enter number:");
 scanf("%d",&n); /*һ*/
 do{
 if(n%2)
 {
 n=n*3+1; /*Ϊn31*/
 printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n);
 }
 else
 {
 n/=2; /*Ϊżn2*/
 printf("[%d]: %d/2=%d\n",++count,2*n,n);
 }
 }while(n!=1); /*n1Ϲ*/
 } 

 82.ķ

 ġķǣȻֻҪĸƽ;ͿԱʾ
 ֤˶

 *㷨
 һǲȥ֤Ǳ֤
 ĸ̽ķм㣬Ҫʱ

 *˵ע
 #include<stdio.h>
 #include<stdlib.h>
 int main()
 {
 int number,i,j,k,l;
 printf("Please enter a number=");
 scanf("%d",&number); /**/
 for(i=1;i<number/2;i++) /*̽̽i,j,k,kĲֵͬ*/
 for(j=0;j<=i;j++)
 for(k=0;k<=j;k++)
 for(l=0;l<=k;l++)
 if(number==i*i+j*j+k*k+l*l) /*㶨Ҫ*/
 {
 printf(" %d=%d*%d+%d*%d+%d*%d+%d*%d\n",number,i,i,j,j,k,k,l,l);
 exit(0);
 }
 }

 *н
 1) Please enter a number = 110
 110=7*7+6*6+4*4+3*3
 2) Please enter a number = 211
 211=8*8+7*7+7*7+7*7
 3) Please enter a number = 99
 99=7*7+5*5+4*4+3*3

 83.п˳

 ֤п㡣һλֻҪǸλϵǲȫͬģĹɣ
 1)ɸλĸɴСУγĸֹɵλ
 2)ɸλĸСУγĸֹɵСλ(ĸк0õλ)
 3)Ĳõһµλ(λ㱣)
 ظϹ̣õĽ6174Ϊп

 *㷨
 ĿиĴ̺㷨ҪƣɰĿֱӽ֤

 *˵ע
 #include<stdio.h>
 void vr6174(int);
 void parse_sort(int num,int *each);
 void max_min(int *each,int *max,int *min);
 void parse_sort(int num,int *each);
 int count=0;
 int main()
 {
 int n;
 printf("Enter a number:");
 scanf("%d", &n); /**/
 vr6174(n); /*ú֤*/
 }

 void vr6174(int num)
 {
 int each[4],max,min;
 if(num!=6174&&num) /*74Ҳ0пп*/
 {
 parse_sort(num,each); /*ֽ⣬ִeach*/
 max_min(each,&max,&min); /*ɵֵСֵ*/ 
 num=max-min; /*ֵСֵĲ*/
 printf("[%d]: %d-%d=%d\n",++count,max,min,num); /*ò*/
 vr6174(num); /*ݹпп*/
 }
 }
 void parse_sort(int num,int *each)
 {
 int i,*j,*k,temp;
 for(i=0;i<=4;i++) /*NUMֽΪ*/
 {
 j=each+3-i;
 *j=num%10;
 num/=10;
 }
 for(i=0;i<3;i++) /*ԸִС*/
 for(j=each,k=each+1;j<each+3-i;j++,k++)
 if(*j>*k) { temp=*j;*j=*k;*k=temp;}
 return;
 }
 void max_min(int *each,int *max,int *min) /*ֻֽԭΪС*/
 {
 int *i;
 *min=0;
 for(i=each;i<each+4;i++) /*ԭΪС*/
 *min=*min*10+*i;
 *max=0;
 for(i=each+3;i>=each;iC) /*ԭΪ*/
 *max=*max*10+*i;
 return;
 }

 *н
 1) Enter a number:4312
 [1]:4312-1234=3078
 [2]:8730-378=8352
 [3]:8532-2358=6174
 2) Enter a number:8720
 [1]:8720-278=8442
 [2]:8442-2448=5994
 [3]:9954-4599=5355
 [4]:5553-3555=1998
 [5]:9981-1899=8082
 [6]:8820-288=8523
 [7]:8532-2358=6174
 3)Enter a number:9643
 [1]:9643-3469=6174 

 84.Ƴ˹

 ֤Ƴ˹κһдһĺ͡

 *㷨
 һ֤ǳġ
 һa,aż(aa-a+1)ȻΪ
 һȲУеΪ(aa-a+1),ȲеĲֵΪ2()ǰaĺΪ
 a((aa-a+1))+2a(a-1)/2
 =aaa-aa+a+aa-a
 =aaa
 ֤ϡ
 ֤֪ͨ̿LҪеΪ(aa-a+1)Ϊa̵㷨Ҫƣɰնֱ֤ӽ֤

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a,b,c,d;
 printf("Please enter a number:");
 scanf("%d",&a); /**/
 b=a*a*a; /*η*/
 printf("%d*%d*%d=%d=",a,a,a,b);
 for(d=0,c=0;c<a;c++) /*УΪa*a-a+1,ȲֵΪ2*/
 {
 d+=a*a-a+1+c*2; /*еǰaĺ*/
 printf(c?"+%d":"%d",a*a-a+1+c*2);
 }
 if(d==b)printf(" Y\n"); /*Y*/
 else printf(" N\n"); /*N*/
 }

 *н
 1) Please enter a number:13
 13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181 Y
 2) Please enter a number:14
 14*14*14=2744=183+185+187+189+191+193+195+197+199+201+203+205+207+209 Y

 *˼
 ֤֤ⷽĹҵ̵㷨Ȼʵֱ̡ʵҲԲֱ֤ʹñгõ̽ҳУ֤ö㷨Ȼõпöõвһ 

 85.γ

 ȡһʮ䵹ԭӣõһµظϲۣտɵõһ֤

 *㷨
 һγɹĿǰһ룬δõѧϵ֤ЩҪϰٸ۲ܻá֤ͨ
 ĿиĴ̺㷨ҪơɰĿֱӽ֤

 *˵ע
 #include<stdio.h>
 #define MAX 2147483647
 long re(long int);
 int nonres(long int s);
 int main()
 {
 long int n,m;
 int count=0;
 printf("Please enetr a number optionaly:");
 scanf("%ld",&n);
 printf("The generation process of palindrome:\n");
 while(!nonres((m=re(n))+n)) /*ж䷴ӺǷΪ*/
 {
 if(m+n>=MAX)
 {
 printf(" input error,break.\n");
 break;
 }
 else
 {
 printf("[%d]:%ld+%ld=%ld\n",++count,n,m,m+n);
 n+=m;
 }
 }
 printf("[%d]:%ld+%ld=%ld\n",++count,n,m,m+n); /*õĻ*/
 printf("Here we reached the aim at last!\n");
 }
 long re(long int a) /*ķ*/
 {
 long int t;
 for(t=0;a>0;a/=10) /**/
 t=t*10+a%10;
 return t;
 }
 int nonres(long int s) /*жϸǷǻ*/
 {
 if(re(s)==s) return 1; /*ǻ򷵻أ*/
 else return 0; /*򷵻ء*/
 } 

 86.Զ

 һ˿52ƣʱӦƷָĸˡһԶƵĹҪ󣺺S(Spaces)ʾH(Hearts)ʾD(Diamonds)ʾ÷C(Clubs)ʾ

 *㷨
 մƵĹ涨ÿӦ13ơ˹ʱȽϴƣȻϴõưһ˳򷢸ÿһˡΪ˱ڼģ⣬ɽ˹ʽķƹ̼޸ģȷ÷˳123452˳ţ2Ӧ02Ӧ12Ӧ2÷2Ӧ33Ӧ43Ӧ5Ȼ52 Ϊÿ˳ơ
 CԿ⺯051֮Ĺ52ԲϴƺƵЧ
 *ע 

 #include<stdlib.h>
 #include<stdio.h>
 int comp(const void *j,const void *i);
 void p(int b[],char n[]);

 int main(void)
 {
 static char n[]={'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
 int a[53],b1[13],b2[13],b3[13],b4[13];
 int b11=0,b22=0,b33=0,b44=0,t=1,m,flag,i;
 while(t<=52) /*Ʒ52*/
 {
 m=rand()%52; /*051֮*/
 for(flag=1,i=1;i<=t&&flag;i++)/*²ǷѾ*/
 if(m==a) flag=0; /*flag=1:µflag=0:²Ѿ*/

 if(flag)
 {
 a[t++]=m; /*µ*/
 if(t%4==0) b1[b11++]=a[t-1]; /*tģֵжϵǰ*/
 else if(t%4==1) b2[b22++]=a[t-1]; /*Ӧĸ*/
 else if(t%4==2) b3[b33++]=a[t-1];
 else if(t%4==3) b4[b44++]=a[t-1];
 }
 }

 qsort(b1,13,sizeof(int),comp); /*ÿ˵ƽ*/
 qsort(b2,13,sizeof(int),comp);
 qsort(b3,13,sizeof(int),comp);
 qsort(b4,13,sizeof(int),comp);
 p(b1,n); p(b2,n); p(b3,n); p(b4,n); /*ֱӡÿ˵*/

 return 0;
 }

 void p(int b[],char n[])
 {
 int i;
 printf("\n\006 "); /*ӡұ*/
 for(i=0;i<13;i++) /*еֵתΪӦĻɫ*/
 if(b/13==0) printf("%c ",n[b%13]); /*ûɫӦ*/
 printf("\n\003 "); /*ӡұ*/

 for(i=0;i<13;i++)
 if((b/13)==1) printf("%c ",n[b%13]);
 printf("\n\004 "); /*ӡ*/
 for(i=0;i<13;i++)
 if(b/13==2) printf("%c ",n[b%13]);
 printf("\n\005 "); /*ӡ÷*/
 for(i=0;i<13;i++)
 if(b/13==3||b/13==4) printf("%c ",n[b%13]);
 printf("\n");
 }

 int comp(const void *j,const void *i) /*qsortõ*/
 {
 return(*(int*)i-*(int*)j);
 }

 87.ڰӽ

 Ӻͼã
    .    

 ϷĿٵĲͼаӺͺӵλýн
    .    

 ϷĹǣ(1)һֻƶһӣ (2)ӿոƶҲһԷӽո񣬵ҲӡüʵϷ

 *㷨
 ʤĹؼҪҳĹɣ˵Ҫƶһ׼жĹ򡣷⣬⣬ܽ¹
 (1) ոת(5)
 (2) ոת(5)
 (3) ƶһո(Ӧ)ת(5)
 (4) ƶһո(Ӧ)ת(5)
 (5) жϷǷûнת(1)
 νġǣƶӵĹУδλͬɫһʹе޷ƶ簴зƶӣ
 0
    .    
 1   .     
 2      .   
 3
    .    
 4 һ
      .  
 4 һ
  .      

 ԭڵ2(״̬)ʱӡƶֻܽƶ
 ܽԭ򣬵̳֡ڡסաڡ򡰰סաڡס״̬ʱƶмӣֻƶߵӡ
 򣬿Ա֤ƶӵĹУ޷ƶҿٵĲɰӺͺӵλý

 *˵ע
 #include<stdio.h>
 int number;
 void print(int a[]);
 void change(int *n,int *m);
 int main()
 {
 int t[7]={1,1,1,0,2,2,2}; /*ʼ1 2 0ո*/
 int i,flag;
 print(t);
 while(t[0]+t[1]+t[2]!=6||t[4]+t[5]+t[6]!=3) /*жϷǷ
 ûӵĽѭ*/
 {
 flag=1; /*flag Ϊƶһı1δƶ 0Ѿƶ*/
 for(i=0;flag&&i<5;i++) /*ӿӣ*/
 if(t==1&&t[i+1]==2&&t[i+2]==0)
 {change(&t,&t[i+2]); print(t); flag=0;}
 for(i=0;flag&&i<5;i++) /*ӿӣ*/
 if(t==0&&t[i+1]==1&&t[i+2]==2)
 {change(&t,&t[i+2]); print(t); flag=0;}
 for(i=0;flag&&i<6;i++) /*ƶӲ,ƶ*/
 if(t==1&&t[i+1]==0&&(i==0||t[i-1]!=t[i+2]))
 {change(&t,&t[i+1]); print(t);flag=0;}
 for(i=0;flag&&i<6;i++) /*ƶӲƶ*/
 if(t==0&&t[i+1]==2&&(i==5||t[i-1]!=t[i+2]))
 { change(&t,&t[i+1]); print(t);flag=0;}
 }
 }
 void print(int a[])
 {
 int i;
 printf("No. %2d:..\n",number++);
 printf(" ");
 for(i=0;i<=6;i++)
 printf(" | %c",a==1?'*'a==2?'@':' '));
 printf(" |\n ..\n\n");
 }
 void change(int *n,int *m)
 {
 int term;
 term=*n; *n=*m; *m=term;
 }

 *Ľһ
 еĹ򲻽ӵҿƶ֮Nӵ߿Ա֤ձõƶٵġ
 ʵϣƶǽĹؼһϷ˼ˮƽĸߵͣȫȡʹùĺû

 *˼
 Ӻͼã

  .  
 . . . 
  .  

 еӰߣҪٵĲͼаӺͺӵλýнսһͼʾ
  .  
 . . . 
  .  

 88.ʤ

 21ȡÿÿοȡ14ɶȡҲܲȡ˭ȡһK˭䡣дһ˻ģҪȡȡһΪʤ

 *㷨
 ڼߵ£ҪʹΪʤҳȡ ؼݱҪܽһȡӵԷղһȡӵ֮͵ڣͿԱ֤һȡӵǸ˵ġ
 ݴ˷㷨ƾǺܼ򵥵ĹʵҲʮס

 *˵ע
 #include<stdio.h>
 int main()
 {
 int a=21,i;
 printf("Game begin:\n");
 while(a>0)
 {
 do{
 printf("How many stick do you wish to take(1~%d)?",a>4?4:a);
 scanf("%d",&i);
 }while(i>4||i<1||i>a); /*ȷ*/
 if(a-i>0) printf(" %d stick left in the pile.\n",a-i);
 if((a-i)<=0)
 {
 printf(" You have taken the last stick.\n");
 printf(" * * * You lose! \nGame Over.\n"); /*ȡʤ*/
 break;
 }
 else
 printf(" Compute take %d stick.\n",5-i); /*ȡ*/
 a-=5;
 printf(" %d stick left in the pile.\n",a);
 }
 }

 *˼
 ıĿл(Ϊ22)ߵһͲһֳܹʤˣܸܿıɡܡʱһʤĳʼÿȡĻֱֵӹϵдһ⡣ 

 89.30

 йһϷ˴1ʼÿÿοɱһ˭ȱ30˭Ϊʤ

 *㷨
 ƣ㷨Ҳƣͬǣ˭ߵһǿѡġߵһôһӮҡһôֻõȴ˷ߵһҲô˾ͻȡʤץס˵һδʹԼΪʤߡ

 *˵ע
 #include<stdio.h>
 #include<time.h>
 #include<stdlib.h>
 int input(int t);
 int copu(int s);
 int main()
 {
 int tol=0;
 printf("\n* * * * * * * *catch thirty* * * * * * * \n");
 printf("Game Begin\n");
 randomize(); /*ʼ*/
 if(random(2)==1) /*ȡ˭ߵһ*/
 tol=input(tol); /*Ϊ1Ԫߵһ*/
 while(tol!=30) /*Ϸ*/
 if((tol=copu(tol))==30) /*ȡһΪ30ʤ*/
 printf("I lose! \n");
 else
 if((tol=input(tol))==30) /*ȡһΪ30ʤ*/
 printf("I lose! \n");
 printf(" * * * * * * * *Game Over * * * * * * * *\n");
 }
 int input(int t)
 {
 int a;
 do{
 printf("Please count:");
 scanf("%d",&a);
 if(a>2||a<1||t+a>30)
 printf("Error input,again!");
 else
 printf("You count:%d\n",t+a);
 }while(a>2||a<1||t+a>30);
 return t+a; /*صǰѾȡߵۼӺ*/
 }
 int copu(int s)
 {
 int c;
 printf("Computer count:");
 if((s+1)%3==0) /*ʣģΪ1ȡ1*/
 printf(" %d\n",++s);
 else if((s+2)%3==0)
 {
 s+=2; /*ʣģΪ2ȡ2*/
 printf(" %d\n",s);
 }
 else
 {
 c=random(2)+1; /*ȡ12*/
 s+=c;
 printf(" %d\n",s);
 }
 return s;
 }

 *˼
 ɶż25ӣϷ˫ȡӣÿÿȡһӣȡ3ӡ˫ȡȥֱȡеӡ˫бȻһΪżһΪżΪʤߡʵ˻Ϸ





 90.ɽϷ

 nɽΪ˫ɽ涨ÿΰɽֹܳ k˭һ˭䡣Ϸʼʱɽ(n)ÿɽֹ(k)Ȼ˿ʼҪߵɽĿ󣬼ϴӡɽʾɽ˫ɽֱһɽΪֹʾ˭ӮңǷҪ˲ˣͳƳ˼֣˫ʤΡ

 *㷨
 μϷʱӦѭԭ
 1) 
 ʣɽĿ-1<=ƶk ʱҪ(ʣɽĿ-1)Ա㽫һɽˡ
 2)x,yһУ
 0<=x%(y+1)<=y
 nɽ£Ϊ˽һɽˣҪÿΰɽĿkӦɽĿҪйϵ
 (n-1)%(k+1)
 Ϊ0涨ֻ1ɽԷֹð⡣
 ĹɣɱдϷ£
 #include<stdio.h>
 int main()
 {
 int n,k,x,y,cc,pc,g;
 printf("More Mountain Game\n");
 printf("Game Begin\n");
 pc=cc=0;
 g=1;
 for(;;)
 {
 printf("No.%2d game \n",g++);
 printf("\n");
 printf("How many mpuntains are there?");
 scanf("%d",&n);
 if(!n) break;
 printf("How many mountains are allowed to each time?");
 do{
 scanf("%d",&k);
 if(k>n||k<1) printf("Repeat again!\n");
 }while(k>n||k<1);
 do{
 printf("How many mountains do you wish movw away?");
 scanf("%d",&x);
 if(x<1||x>k||x>n) /*жϰɽǷҪ*/
 {
 printf("IIIegal,again please!\n");
 continue;
 }
 n-=x;
 printf("There are %d mountains left now.\n",n);
 if(!n)
 {
 printf("I win. You are failure\n\n");cc++;
 }
 else
 {
 y=(n-1)%(k+1); /*Ѱɽ*/
 if(!y) y=1;
 n-=y;
 printf("Copmputer move %d mountains away.\n",y);
 if(n) printf(" There are %d mountains left now.\n",n);
 else
 {
 printf("I am failure. You win\n\n");
 pc++;
 }
 }
 }while(n);

 }
 printf("Games in total have been played %d.\n",cc+pc);
 printf("You score is win %d,lose %d.\n",pc,cc);
 printf("My score is win %d,lose %d.\n",cc,pc);
 }

 *˼
 ȡʯϷʯӷֳɶѣÿμϷļһȡʯӣȫȡߣÿֻһȡȡһЩٴһȡһЩֱ˭ȡһʯ˭ͻʤ̽˻ 

 91.˻Ϸ

 ɼ롱һλ˲λǶ١λֺ󣬼жλмλǲ¶ˣڶԵмλλҲǶԵģʾʾٲ£ֱ˲³λǶΪֹ
 磺롱һ1234˲£ܵʾ£
 ˲µ жмȷ мλȷ
 1122 2 1
 3344 2 1
 3312 3 0
 4123 4 0
 1243 4 2
 1234 4 4
 Ϸ
 ʵָϷϷʱʾ˲һ˼Ρ

 *㷨
 ⱾˡжͬλϵǷͬҪ㷨ֻҪȡͬλϵֽбȽϼɡжϼλȷʱӦע⣺ǡ1123µǡ1576ȷֻ1λ
 нȡÿλµְλȽϡλͬҪֵλãʹλֻһλӦ֡ͬȡһλֽбȽʱͲӦλϵֽбȽϣԱµеһλӦжλ֡ͬĴ

 *˵ע
 #include<stdio.h>
 #include<time.h>
 #include<stdlib.h>
 int main()
 {
 int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:ȷλ k:λȷλ*/
 long ltime;
 ltime=time(NULL); /*l:ͬʱֵȷλ*/
 stime=(unsigned int)ltime/2;
 srand(stime);
 z=random(9999); /*һ*/
 printf("I have a number with 4 digits in mind,please guess.\n");
 for(c=1;;c++) /*c: */
 {
 printf("Enter a number with 4 digits:");
 scanf("%d",&g); /*˲*/ 
 a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
 for(i=1;i<5;i++) /*i:ԭеĵiλλΪһλǧλΪ4λ*/
 {
 s=g;m=1;
 for(t=1;t<5;t++) /**/
 {
 if(a%10==s%10) /*iλ˲µĵtλͬ*/
 {
 if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
 {
 j++;m=0;l[j-1]=t; /*λϵδ֡ͬ*/
 } /*¼ͬʱеλ*/

 if(i==t) k++; /*λҲͬk1*/
 }
 s/=10;
 }
 a/=10;
 }
 printf("You hane correctly guessed %d digits,\n",j);
 printf("and correctly guessed %d digits in exact position.\n",k);
 if(k==4) break; /*λȫȷ˲¶ˣ˳*/
 }
 printf("Now you have correctly guessed the whole number after %d times.\n",c);
 }

 Now you have correctly guessed the whole number after 7 times.

 *˼
 Ϸɼ롱һ˲£µ¶ˣϷʾָ˲µ̫󣬻̫Сһ20λδʱӦֹͣ߼ϷȨӳ˳

 92.˻Ϸ(2)

 Ϸ91.˻Ϸ˫һ£һλ£˸ʾϢտüβ³һˡ롱ʵ֡

 *㷨
 ʱ˼̲һ걸ؼҪжϵḺ́һֻеḶ́ҳӦĹ򣬷
 ڶķ⣬м򻯣ΪɣȷλֵɣȻȷλֵ˳򡣿г¹
 1)ֱʾĸ1ĸ2ĸ0ȷλֵɡ
 2)βλֵȫ(ȫֵλ)
 3)ȷּȷλõĿзֱ
 (עʱΪĸѾȷ£3λȷĸֵλñȻҲȷ)
 4Ϸ
 жϱϴĲֵ
 Ϊ2˵ǰһһΪ0Ϊ2νֵλȷģֻҪûнּɽϷ
 Ϊ-2˵ǰһһΪ2εһΪ0˵սֵλǴģֻҪλûԭûнּɽϷ
 ȷλ<=ϴεȷλ
 ָϴλֵУת3)
 򣺽ȷλΪϴȷλת3)

 *˵ע
 #include<stdio.h>
 #include<stdlib.h>
 void bhdy(int s,int b);
 void prt();
 int a[4],flag,count;
 int main()
 {
 int b1,b2,i,j,k=0,p,c;
 printf("Game guess your number in mind is # # # #.\n");
 for(i=1;i<10&&k<4;i++) /*ֱʾĸ1~9ȷĸֵ*/
 {
 printf("No.%d:your number may be:%d%d%d%d\n",++count,i,i,i,i);
 printf("How many digits have bad correctly guessed:");
 scanf("%d",&p); /*λ*/ 
 for(j=0;j<p;j++)
 a[k+j]=i; /*a[]:ȷֵ*/
 k+=p; /*k:ȷָ*/
 }
 if(k<4) /*Զλаĸ*/
 for(j=k;j<4;j++)
 a[j]=0;
 i=0;
 printf("No.%d:your number may be:%d%d%d%d\n",++count,a[0],a[1],a[2],a[3]);
 printf("How many are in exact positions:"); /*˳ʾλ*/
 scanf("%d",&b1); /*мλλȷ*/
 if(b1==4){prt();exit(0);} /*λȷӡϷ*/
 for(flag=1,j=0;j<3&&flag;j++) /*ʵĸֵ(a[j],a[k]*/
 for(k=j+1;k<4&&flag;k++)
 if(a[j]!=a[k])
 {
 c=a[j];a[j]=a[k];a[k]=c; /*a[j],a[k]*/
 printf("No.%d:Your number may be: %d%d%d%d\n",++count,a[0],a[1],a[2],a[3]);
 printf("How many are in exact positins:");
 scanf("%d",&b2); /*мλȷ*/
 if(b2==4){prt();flag=0;} /*ȫȷϷ*/
 else if(b2-b1==2)bhdy(j,k); /*ϴ뱾εĲΪ2򽻻Ԫؼɽ*/
 else if(b2-b1==-2) /*ϴ뱾εĲΪ-2˵ѽ(a[j],a[k])Ǵ
 (a[j],a[k]ԭֻҪԪؼɽϷ*/
 {
 c=a[j];a[j]=a[k];a[k]=c;
 bhdy(j,k);
 }
 else if(b2<=b1)
 {
 c=a[j];a[j]=a[k];a[k]=c; /*ָ*/
 }
 else b1=b2; /*λϢΪϴελñ*/
 }
 if(flag) printf("You input error!\n"); /*ûֻϢ*/
 }
 void prt() /*ӡϷ*/
 {
 printf("Now your number must be %d%d%d%d.\n",a[0],a[1],a[2],a[3]);
 printf("Game Over\n");
 }
 void bhdy(int s,int b)
 {
 int i,c=0,d[2];
 for(i=0;i<4;i++) /*sbԪ±*/
 if(i!=s&&i!=b) d[c++]=i;
 i=a[d[1>;a[d[1>=a[d[0>; a[d[0>=i; /*aaԪ*/
 prt(); /*ӡϷ*/
 flag=0;
 }

 *ʾ
 λǣ7215
 Game Begin
 Now guess your number in mind is # # # #.
 No.1:your number may be:1111



 *Ľһ
 ߼ṹ㷨ȷŵ㣬ڽ˵ϢʱȱٱҪĳܣͬʱڽеûбÿβ³λϢĻشÿϢ޷кϷԼ飬޷˵ϢǷìܣͬҲ޷ǰĽ
 ЩȱǿԸĽģһĽѶȽϴԼȥɡ

 *˼
 һϷһ33ϣ˫ж˫ӣһӳһֱ(ᡢб)÷ӮдϷʵı֣䡢Ӯƽ
 ڱ̹ȷܻʤҳһʲôλþӮ 

 93.ŵ

 Լ19ĩŷݵ̵гһߣһͭˣߵĸ϶¡С˳64Բ̹ɵĿǽ߸ϵȫƵұߵĸϣһֻƶһ̣Ҳ̷С̵档

 *㷨
 һ⣬еĽ̲϶⡣һֻƶһ̣Ҳ̷С棬64̵ƶǣ
 18446744073709551615
 һ֣ÿһ΢ܼ()һƶôҲҪһꡣǽҳĽСNֵʱĺŵü64ĺŵ
 ⣬ҳƶӵȷ㷨
 ȿaӶǸӣˣ
 *63Ƶbϣ
 *aʣµƵcϣ
 *bϵȫƵcϡ
 ̼ȥҪƶ63ӡ62ӡ61ӡ.Ĺ
 Ϊ˸㷨Զһmovedisc(n,a,b,c)úĹǣNӴAϽCƶBϡƶNӵĹͿ԰¹̽У
 1) movedisc(n-1,a,c,b);
 2) һӴaƶbϣ
 3) movedisc(n-1,c,b,a)
 ظϹֱ̣ȫƶλʱΪֹ

 *˵ע
 #include<stdio.h>
 void movedisc(unsigned n,char fromneedle,char toneedle,char usingneedle);
 int i=0;
 int main()
 {
 unsigned n;
 printf("please enter the number of disc:");
 scanf("%d",&n); /*Nֵ*/
 printf("\tneedle:\ta\t b\t c\n");
 movedisc(n,'a','c','b'); /*AϽBNƶC*/
 printf("\t Total: %d\n",i);
 }
 void movedisc(unsigned n,char fromneedle,char toneedle,char usingneedle)
 {
 if(n>0)
 {
 movedisc(n-1,fromneedle,usingneedle,toneedle);
 /*fromneedleϽtoneedleN-1ƶusingneedle*/
 ++i;
 switch(fromneedle) /*fromneedle ϵһƵtoneedle*/
 {
 case 'a': switch(toneedle)
 {
 case 'b': printf("\t[%d]:\t%2d>%2d\n",i,n,n);
 break;
 case 'c': printf("\t[%d]:\t%2d>%2d\n",i,n,n);
 break;
 }
 break;
 case 'b': switch(toneedle)
 {
 case 'a': printf("\t[%d]:\t%2d<>%2d\n",i,n,n);
 break;
 case 'c': printf("\t[%d]:\t %2d..>%2d\n",i,n,n);
 break;
 }
 break;
 case 'c': switch(toneedle)
 {
 case 'a': printf("\t[%d]:\t%2d<%2d\n",i,n,n);
 break;
 case 'b': printf("\t[%d]:\t%2d<..%2d\n",i,n,n);
 break;
 }
 break;
 }
 movedisc(n-1,usingneedle,toneedle,fromneedle);
 /*usingneedleϽfromneedleN-1ƶtoneedle*/
 }
 } 



 94.Ӳ



 ǰһԳكӣÿһһԃӣС¾ͳˣڵڶµµ׿ʼǵһСӣһһȥ⃷С

 *㷨
 Գѧʽ
 Un=Un-1+Un-2
 У
 n(n>=3)ķƲУеǰΪ1123581321
 ƲڳпöַдͨƹʽѭƾͿʵĿҪ

 *˵ע
 #include<stdio.h>
 int main()
 {
 int n,i,un1,un2,un;
 for(n=2;n<3;)
 {
 printf("Please enter required number of generation:");
 scanf("%d",&n);
 if(n<3) printf("\n Enter error!\n"); /*ȷNֵ*/
 }
 un=un2=1;
 printf("The repid increase of rabbits in first %d generation is as felow:\n",n);
 printf("l\tl\t");
 for(i=3;i<=n;i++)
 {
 un1=un2;
 un2=un;
 un=un1+un2; /*ͨʽNֵ*/
 printf(i%10?"%d\t":"%d\n",un);
 }
 printf("\n");
 }

 *н
 Please enter required number of generation: 20
 The repid increase of rabbits in first 20 generation is as felow:
 1 1 2 3 5 8 13 21 34 55
 89 144 233 377 610 987 1597 2584 4181 6765 



 95.תΪ

 0С1000İתΪֵ֡ĶӦϵ£
 1 2 3 4 5 
 I II III IV V 

 *㷨
 Ŀи˰ֵĶӦϵеתʵϾǲ롣İ١ʮλδзֽұӦкӦַ
 *
 #include<stdio.h>
 int main()
 {
 static char *a[][10]={"","I","II","III","IV","V","VI","VII","VIII","IX"
 "","X","XX","XXX","XL","L","LX","LXX","LXXX","XCC",
 "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"
 }; /*ձ*/
 int n,t,i,m;
 printf("Please enter number:");
 scanf("%d",&n); /**/
 printf("%d=",n);
 for(m=0,i=1000;m<3;m++,i/=10)
 {
 t=(n%i)/(i/10); /*Ӹλλȡλ*/
 printf("%s",a[2-m][t]); /*ͨձ*/
 }
 printf("\n");
 }

 *н
 1. Please enter number:863
 863=DCCCLXIII
 2. Please enter number: 256
 256=CCLVI
 3. Please enter number:355
 355=CCCLV
 4. Please enter number:522
 522=DXXII
 5. Please enter number:15
 15=XV

 *˼
 NӦӢַ磺
 1 ONE 2 TWO 3 THREE
 10 TEN 11 ELEVEN
 135 ONE HUNDRED THIRTY FIVE 



 96.ѡ

 ѡİʤֳһѡֲμӱĹ÷ԽߣԽ͡ʱҪֳѡֵĳ˳÷ֺΣͬѡ־ͬΣţÿͬεѡ磺
 ѡţ 1234567
 ѡֵ÷֣ 5347356
 Ϊ 3125134
 ̰ίɰֺ

 *㷨
 óԼԱĻΪAеСţҪ󲻸ıԪص˳ͬҪͬıš
 ͨ򷽷ҪıԪԭ˳ȻҪΪˣһרŴε飬ٲͨ㷨δųεԪҳСֵԾֵͬԪؽдظһֱ̣ȫԪźΪֹ

 *˵ע
 #include<stdio.h>
 #define NUM 7 /*Ҫ*/
 int a[NUM+1]={0,5,3,4,7,3,5,6}; /*ΪֱӶѡֵķ*/
 int m[NUM+1],l[NUM+1]; /*m:ѱεı l:¼ͬԪص±*/
 int main()
 {
 int i,smallest,num,k,j;
 num=1; /**/
 for(i=1;i<=NUM;i++) /*ɨ飬ÿδһ*/
 if(m==0) /*δδ(ҵһδԪ)*/
 {
 smallest=a; /*ȡһδԪΪǰСֵ*/
 k=1; /*l±꣬ͬε*/
 l[k]=i; /*¼ֵΪsmallestͬԪص±*/
 for(j=i+1;j<=NUM;j++) /*һԪؿʼµԪؽд*/
 if(m[j]==0) /*ΪδдԪ*/
 if(a[j]<smallest) /*СڵǰСֵ*/
 {
 smallest=a[j]; /*õSСֵ*/
 k=0; /*ͬ*/
 l[++k]=j; /*¼¼ͬԪ±*/
 }
 else if(a[j]==smallest) /*뵱ǰͷͬ*/
 l[++k]=j; /*¼ͬεԪ±*/
 for(j=1;j<=k;j++) /*ͬεԪؽδ*/
 m[l[j>=num;
 num++; /*μ1*/
 i=0; /*¿ʼһûεԪ*/
 }
 printf("Player-No score Rank\n");
 for(j=1;j<=NUM;j++) /**/
 printf(" %3d %4d %4d\n",j,a[j],m[j]);
 }

 *н
 Player-No Score Rank
 1 5 3
 2 3 1
 3 4 2
 5 7 5
 5 3 1
 3 5 3
 7 6 4

 *˼
 ԭеġţÿͬεѡΪͬεѡѡֵνбšôӦ޸ĳ 

 97.

 mn(20>=m>=n>0)·̵ i1,i2,,inʹãi1+i1++in=mi1>=i2>=in磺
 n=4, m=8ʱõ5 У
 5 1 1 1 4 2 1 1 3 3 1 1 3 2 2 1 2 2 2 2

 *㷨
 ɽԭΪMֽΪNNĺΪMi1>=i2>=>=inֽķܵͶ࣬Ŀ"i1>=i2>=..>=inʾǿȷұinԪصֵΪ1ȻʹǰһԪصֵһڵڵǰԪصֵϵǰƾͿԽ⡣ĳûѡMNС

 *˵ע
 #include<stdio.h>
 #define NUM 10 /*ֽԪ*/
 int i[NUM]; /*¼ֵֽ*/
 int main()
 {
 int sum,n,total,k,flag,count=0;
 printf("Please enter requried terms(<=10):");
 scanf("%d",&n);
 printf(" their sum:");
 scanf("%d",&total);
 sum=0; /*ǰӺǰkԪصĺ*/
 k=n; /*ӺǰڴԪ±*/
 i[n]=1; /*һԪصֵΪ1Ϊʼֵ*/
 printf("There are following possible series:\n");
 while(1)
 {
 if(sum+i[k]<total) /*kλĺСָtotal*/
 if(k<=1) /*ҪǵһԪ*/
 {i[1]=total-sum;flag=1;} /*һԪصĲñ*/
 else{
 sum+=i[kC];
 i[k]=i[k+1]; /*õkλֵk-1*/
 continue; /*ǰԪ*/
 }
 else if(sum+i[k]>total||k!=1) /*ѳtotalǵһԪ*/
 { sum-=i[++k]; flag=0;} /*kһԪ*/
 else flag=1; /*sum+i[k]=total&&k=1 flag*/
 if(flag)
 {
 printf("[%d]:",++count);
 for(flag=1;flag<=n;++flag)
 printf("%d",i[flag]);
 printf("\n");
 }
 if(++k>n) /*kһԪغжǷ˳һԪ*/
 break;
 sum-=i[k];
 i[k]++; /*һֽ*/
 }
 }

 *н
 Please enter requried terms(<=10):4
 their sum:8
 There are following possible series:
 [1]: 5111
 [2]: 4211
 [3]: 3311
 [4]: 3221
 [5]: 2222






 98.˻ʺ

 һ88ϣ8ʺÿʺռһҪʺ䲻໥󣬼ʺͬһСͬһлͬһԽϡʹжֲͬķ

 *㷨
 һϵľдԵ⣬üʱ㷨Ҳܶ࣬һ֡
 һάд±iʾϵĵiУaֵʾʺڵiŵλá磺a[1]=5ʾ̵ĵһĵзһʺ
 ȼٶa[1]=1ʾһʺ̵ĵһеĵһеλϣȻ̽ڶлʺܵλãҵʵλúٴĸУͨеķ̽ҳʺȫڷŷ
 ûݷ㷨ϸڲο

 *˵ע
 #include<stdio.h>
 #define NUM 8 /*ĴС*/
 int a[NUM+1];
 int main()
 {
 int i,k,flag,not_finish=1,count=0;
 i=1; /*ڴԪ±꣬ʾǰi-1ԪѷҪڴiԪ*/
 a[1]=1; /*ΪĵһԪظֵ*/
 printf("The possible configuration of 8 queens are:\n");
 while(not_finish) /*not_finish=1:δ*/
 {
 while(not_finish&&i<=NUM) /*δһûNUMԪ*/
 {
 for(flag=1,k=1;flag&&k<i;k++) /*жǷжʺͬһ*/
 if(a[k]==a)flag=0;
 for(k=1;flag&&k<i;k++) /*жǷжʺͬһԽ*/
 if((a==a[k]-(k-i))||(a==a[k]+(k-i))) flag=0;
 if(!flag) /*ìܲҪҪõiԪ*/
 {
 if(a==a[i-1]) /*aֵѾһȦ׷a[i-1]ֵ*/
 {
 iC; /*˻һ̽ǰһԪ*/
 if(i>1&&a==NUM)
 a=1; /*aΪNUMʱaֵ1*/
 else if(i==1&&a==NUM)
 not_finish=0; /*һλֵﵽNUMʱ*/
 else a++; /*aֵȡһֵ*/
 }
 else if(a==NUM) a=1;
 else a++; /*aֵȡһֵ*/
 }
 else if(++i<=NUM)
 if(a[i-1]==NUM) a=1; /*ǰһԪصֵΪNUMa=1*/
 else a=a[i-1]+1; /*ԪصֵΪǰһԪصһֵ*/
 }
 if(not_finish)
 {
 ++count;
 printf((count-1)%3?" [%2d]: ":" \n[%2d]: ",count);
 for(k=1;k<=NUM;k++) /**/
 printf(" %d",a[k]);
 if(a[NUM-1]<NUM) a[NUM-1]++; /*޸ĵڶλֵ*/
 else a[NUM-1]=1;
 i=NUM-1; /*ʼѰһĽ*/
 }
 }
 }

 *˼
 һ88Ḷ́64ӡཫʺУͿԿ棬۶ԷӷһжᱻԵ

 99.ļӷ

 һ㷨ļӷ

 *㷨
 ҪһݽṹʾһȻܹ㷨
 ǲһбͷĻʾһǸĳӵλʼΪÿ ֱţһλλλڰλÿλɵ֣ηĵһڶУ4λλһУͷֵ涨Ϊ-1磺
 587890987654321µĴͷheadʾ

 մݽṹԴͷ㿪ʼ˳ζӦӣҪĽλ㡣ʵ㷨еע͡

 *˵ע
 #include<stdio.h>
 #include<stdlib.h>
 #define HUNTHOU 10000
 typedef struct node{ int data;
 struct node *next;
 }NODE; /*ṹ*/

 NODE *insert_after(NODE *u,int num); /*uһµNODEֵΪnum*/
 NODE *addint(NODE *p,NODE *q); /*ɼӷָ*p+*qָ*/
 void printint(NODE *s);
 NODE *inputint(void);

 int main()
 {
 NODE *s1,*s2,*s;
 NODE *inputint(), *addint(), *insert_after();
 printf("Enter S1= ");
 s1=inputint(); /*뱻*/
 printf("Enter S2= ");
 s2=inputint(); /**/
 printf(" S1="); printint(s1); putchar('\n'); /*ʾ*/
 printf(" S2="); printint(s2); putchar('\n'); /*ʾ*/
 s=addint(s1,s2); /**/
 printf("S1+S2="); printint(s); putchar('\n'); /**/
 }
 NODE *insert_after(NODE *u,int num)
 {
 NODE *v;
 v=(NODE *)malloc(sizeof(NODE)); /*һNODE*/
 v->data=num; /*ֵ*/
 u->next=v; /*uһNODE*/
 return v;
 }
 NODE *addint(NODE *p,NODE *q) /*ɼӷָ*p+*qָ*/
 {
 NODE *pp,*qq,*r,*s,*t;
 int total,number,carry;
 pp=p->next; qq=q->next;
 s=(NODE *)malloc(sizeof(NODE)); /*ź͵ͷ*/
 s->data=-1;
 t=s; carry=0; /*carry:λ*/
 while(pp->data!=-1&&qq->data!=-1) /*Ǳͷ*/
 {
 total=pp->data+qq->data+carry; /*ӦλǰεĽλ*/
 number=total%HUNTHOU; /*вֵֵ */
 carry=total/HUNTHOU; /*λ*/
 t=insert_after(t,number); /*ֺʹs*/
 pp=pp->next; /*ֱȡļ*/
 qq=qq->next;
 }
 r=(pp->data!=-1)?pp:qq; /*ȡδϵָ*/
 while(r->data!=-1) /*нϴ*/
 {
 total=r->data+carry; /*λ*/
 number=total%HUNTHOU; /*вֵֵ*/
 carry=total/HUNTHOU; /*λ*/
 t=insert_after(t,number); /*ֺʹsָ*/
 r=r->next; /*ȡֵ*/
 }
 if(carry) t=insert_after(t,1); /*һνλ*/
 t->next=s; /*ɺ͵*/
 return s; /*ָ͵Ľṹָ*/
 }
 NODE *inputint(void) /*볬*/
 {
 NODE *s,*ps,*qs;
 struct number {int num;
 struct number *np;
 }*p,*q;
 int i,j,k;
 long sum;
 char c;
 p=NULL; /*ָΪ͵ĸλβΪλ*/
 while((c=getchar())!='\n') /*ַ*/
 if(c>='0'&&c<='9') /*Ϊ*/
 {
 q=(struct number *)malloc(sizeof(struct number)); /*ռ*/
 q->num=c-'0'; /*һλ*/
 q->np=p; /*ָ*/
 p=q;
 }
 s=(NODE *)malloc(sizeof(NODE));
 s->data=-1; /*󳬳ͷ*/
 ps=s;
 while(p!=NULL) /*յʱеתΪҪı׼ʽ*/
 {
 sum=0;i=0;k=1;
 while(i<4&&p!=NULL) /*ȡλ*/
 {
 sum=sum+k*(p->num); 
 i++; p=p->np; k=k*10;
 }
 qs=(NODE *)malloc(sizeof(NODE)); /*ռ*/
 qs->data=sum; /*ֵ*/
 ps->next=qs;
 ps=qs;
 }
 ps->next=s;
 return s;
 }
 void printint(NODE *s)
 {
 if(s->next->data!=-1) /*Ǳͷ*/
 {
 printint(s->next); /*ݹ*/
 if(s->next->next->data==-1)
 printf("%d",s->next->data);
 else{
 int i,k=HUNTHOU;
 for(i=1;i<=4;i++,k/=10)
 putchar('0'+s->next->data%(k)/(k/10));
 }
 }
 }

 *н

 *˼



 100.ƶ

 ͼеľŸ,ճмĵ,ĵ18;1λù̶,Ȼƶ,ʹ18˳ʱС.ƶĹ:ֻܽհ׵ĵ.
 ʾƶ̡


 *㷨
 Ŀе,ҪмĿհ׸˳ʱ뷽,йֻܽհ׵ĵƶ.ʵʾǽ8񿴳һ,8ڻڽ,ͬĿҪ"ֻܽհ׵ĵ",ҪмĿո,Ҫ㷨ڲͬ.
 ۲мĵ,Ψһһ8ߵĵ,ĵ.ĵĻĿռ,8ƶ,ĵ㷨ƳɹĹؼ.
 ҵ1ڵλú,ֵȷλþǹ̶.ǿ԰㷨2ʼ,һһֵλ.
 *ȷiӦλ;
 *iӦλÿʼ,iڵλ;
 *iλòȷ,iڵλ()мĿո,ԭλÿճ;νпոǰԪƶ;ֱiӦλÿճ,ٴοճмĸ.
 2ʼʹϹ,Ϳȫֵƶ.
 ʱҪ߰˸񿴳һ,һԪǲ,㷨Ƶò,оҪܶྫԪصǰ˳.Ŀе3X3һһάʾ,мԪ(ĺ)պΪո,һָ,רż¼ָ˸񹹳ɻʱӹϵ.ָÿԪμ¼ԭжӦԪ±.ָͨ齫ԭиӵĻ͹ϵʾ˼򵥵Թϵ,Ӷؼ˳.

 *˵ע
 #include<stdio.h>
 int a[]={0,1,2,5,8,7,6,3}; /*ָ.δйɻԪ±*/
 int b[9]; /*ʾ3X3,b[4]Ϊո*/
 int c[9]; /*ȷ1ڵλú,Իеָ*/
 int count=0; /*ƶ*/
 int main()
 { 
 int i,j,k,t;
 void print();
 printf("Please enter original order of digits 1~8:");
 for(i=0;i<8;i++)
 scanf("%d",&b[a[i>);
 /*˳ߵ8,Ԫص˳ָԪa*/
 printf("The sorting process is as felow:\n");
 print();
 for(t=-1,j=0;j<8&&t==-1;j++) /*ȷ1ڵλ*/
 if(b[a[j>==1) t=j; /*t:¼1ڵλ*/ 
 for(j=0;j<8;j++) /*ָ,1ڵλöΪ*/
 c[j]=a[(j+t)%8];
 for(i=2;i<9;i++) /*2ʼεֵλ*/
 /*i:ڴ,iӦڻӦȷλþi-1*/
 for(j=i-1;j<8;j++) /*iӦȷλÿʼ˳*/
 if(b[c[j>==i&&j!=i-1) /*iȷλ*/
 {
 b[4]=i; /*iƵĵĿո*/
 b[c[j>=0;print(); /*ճiԭڵλ,*/
 for(k=j;k!=i-1;kC) /*ոǰiȷλ֮ƶһ*/
 {
 b[c[k>=b[c[k-1>; /*ƶ*/
 b[c[k-1>=0;
 print();
 }
 b[c[k>=i; /*мiȷλ*/
 b[4]=0; /*ճмĿո*/
 print();
 break;
 }
 else if(b[c[j>==i) break; /*iȷλ*/
 }
 void print(void) /*ʽҪ*/
 {
 int c;
 for(c=0;c<9;c++)
 if(c%3==2) printf("%2d ",b[c]);
 else printf("%2d",b[c]);
 printf("-%2d-\n",count++);
 }

 *н

 *Ľһ
 Ȼ,㷨ܽ⣬ƶĲٵġ
 ע㷨е⡣һ1λʼǱֲģ2ûпǵʼ£λԭѾȷ֡е56㷨ƶʱ56ҪƶΣȻ˲ٲ
 ʵ1ֵƶ̣56ʼλѾȷһԴŻƶĹ̡

 *˼
 㷨дŻĳ򣬾ܼƶĲ

 ļ˷ͳ