1、信息学竞赛复习 1.斐波拉契数列( 1000000 以内的数字) #include “ stdio.h” #include “ stdlib.h” void main() long fib1=1,fib2=1,fib=0; printf(“1000000 以内的数字 :nn“); printf(“%dn%dn“,fib1,fib2); while (fib0) current+; while(currentlen) current-=len; if(acurrent=1) m+; if(m=n) acurrent=0; remain-; printf(“%d, “,current); m=0;
2、 system(“pause“); ( 2) 约瑟夫问题 _数组环 #include “stdio.h“ #include “stdlib.h“ void main() int a100; int i,len,n; /i 循环 len 总数 n 每次数几个 int cur,m,remain; /cur 当前是哪个 m 计数 remain 剩下几个 /int t1,t2; for(i=0;i0) cur=acur; m+; if(m=n-1) printf(“%d, “,acur); /t1=acur; /t2=aacur; acur=aacur; remain-; m=0; system(“p
3、ause“); ( 3) 约瑟夫问题 _链表 #include “stdio.h“ #include “stdlib.h“ struct people int num; struct people *next; ; typedef struct people node; node *create(int m) int i; node *h,*p1,*p2; h=p1=p2=(node *)malloc(sizeof(node); h-num=1; for(i=1;inext=p1; p1-num=i+1; p2=p1; p1-next=h; return h; node *findout(no
4、de *tp,int n) int i; node *p; p=tp; for(i=1;inext; return p; node *moveaway(node *tp) node *c,*p1,*p2; c=tp; p1=c-next; p2=p1-next; c-next=p2; printf(“%d, “,p1-num); free(p1); return p2; void main() node *p; int len,i,n; printf(“请输入约瑟夫问题节点总数: “); len=41; /scanf(“%d“, printf(“请输入每次数的节点数字: “); n=3; /s
5、canf(“%d“, p=create(len); for(i=1;inum=1; for(i=1;inext=p1; p1-prior=p2; p1-num=i+1; p2=p1; p1-next=h; h-prior=p1; return h; node *findout(node *tp,int n) int i; node *p; p=tp; for(i=1;inext; return p; node *moveaway(node *tp) node *c,*p1,*p2; c=tp; p1=c-prior; p2=c-next; p1-next=p2; p2-prior=p1; pr
6、intf(“%d, “,c-num); free(c); return p2; void main() node *p; int len,i,n; printf(“请输入约瑟夫问题节点总数: “); len=41;/scanf(“%d“, printf(“请输入每次数的节点数字: “); n=3;/scanf(“%d“, p=create(len); for(i=1;i #include void main() int sum=0;/统计个数 int b;/起数 int a6; int have7; int j; int tempb; for(b=10000;b0 sum+; printf(“
7、sum=%dn“,sum); system(“pause“); ( 2)统计含有 2 个数字 7,但不能被 7 整除的 5 位整数的个数 #include #include void main() int sum=0;/统计个数 int b;/起数 int a6; int have7; int j; int tempb; for(b=10000;b #include void main() int i,j,k; for(i=1;i #include void main() int i,j,k; for(i=1;i void main() int sum=0; int a,b,c,d; int i,j,ir,jr,m,n; int arr5; int flag; for(i=10;i void main() int sum=0; int a,b,c,d,e,f; int i,j,ir,jr,m,n; int arr7; int flag; for(i=100;i void main()