错了。
上面那是最后那H要拿的,也就是剩下4*“那个”
有规律
戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
这是我写的,编译能过,但是运算的结果始终出错,请指点一下: PS:我用的是DEV-C++ #include <stdio.h> #include <stdlib.h>
int last(void); int all(int a);
int main() { int n,sum; n=last(); printf("最后剩下%d个苹果\n",n); sum=all(n); printf("一共有%d个苹果\n",sum); system("pause"); return 0; }
int last(void) { int a1,a2,i,z; for(a1=1;a1<=10000;a1=a1++) { a2=a1; for(i=1;i<=5;i++) { a2=(int)((a2/4)*5+1); z=a2%5; if(z==1) { if(i==5) return a1; else continue; } else break; } } }
int all(int a) { int i; for(i=1;i<=5;i++) a=(a/4)*5+1; return a; }
发错了,应该是这个: #include <stdio.h> #include <stdlib.h>
int last(void); int all(int a);
int main() { int n,sum; n=last(); printf("最后剩下%d个苹果\n",n); sum=all(n); printf("一共有%d个苹果\n",sum); system("pause"); return 0; }
int last(void) { int a1,a2,i,z; for(a1=1;a1<=10000;a1=a1++) { a2=a1; for(i=1;i<=5;i++) { a2=(int)((a2/4)*5+1); z=a2%5; if(z==1) { if(i==5) return a1; else continue; } else break; } } }
int all(int a) { int i; for(i=1;i<=5;i++) a=(a/4)*5+1; return a; }
这次做出来了,答案是一共有3121个苹果,最后剩下1020个苹果,程序如下: #include <stdio.h> #include <stdlib.h>
int main(void) { int a,b,c; for(a=6;a<=10000;a+=5) { c=a; for(b=1;b<=5;b++) { c=(c-1)/5*4; if((c-1)%5==0&&b!=5) continue; else break; } if(b==5) { printf("最后剩下%d个苹果\n",c); printf("总共有%d个苹果\n",a); break; } } system("pause"); return 0; } PS:但是我一直不清楚以前得算法有什么不对得地方,请高手指点一下