hdu 1005 number sequence

网友投稿 756 2022-10-04

hdu 1005 number sequence

hdu 1005 number sequence

问题看出来了,只要首先出现1,1,那么循环节也就找到了(两个值决定后面的值,不断推算,这也算是类斐波那契数列的特点吧)。然后取模处理,输出即可。但是,奇怪的是提交后要么wa,要么runtime error.呵呵~不断改进:控制循环,简洁语句,让自己多想不让电脑多干。最终得到了答案:

#include #includeusing namespace std;int f[10001];int main(){ int A,B,n; f[1]=f[2]=1; while(~scanf("%d%d%d",&A,&B,&n)&&A&&B&&n){ int i; for(i=3;i<=10000;i++){ f[i] = (A * f[i - 1] + B * f[i - 2])%7; if(f[i]==1&&f[i-1]==1)break; } n=n%(i-2); //for(int i=1;i<=n;i++)cout<

结果让人悲伤,依然错误。借鉴了一下别人的代码,稍加改动:

#include #include using namespace std; int arr[10000]; int main() { int A,B,n; arr[1] = arr[2] = 1; while(~scanf("%d%d%d",&A,&B,&n)&&A&&B&&n) { int i; for(i=3; i<10000 ;i++) { arr[i] = (A*arr[i-1] + B*arr[i-2]) % 7; if(arr[i] == 1 && arr[i-1] == 1)break; } n = n % (i-2); if(n==0)n=i-2; //arr[0] = arr[i-2]; printf("%d\n",arr[n]); } return 0; }

居然AC了,两份代码除了数组名不一样外还有差别吗?真是醉了。。。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:动态规划初识
下一篇:微信小程序验证码如何实现?(源代码)(微信小程序需要验证码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~