杭电1005 Number Sequence WA

 我来答
lairen66
2011-09-02 · TA获得超过165个赞
知道答主
回答量:185
采纳率:0%
帮助的人:159万
展开全部
貌似规律找得不对。 #include
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c19c0d0
2011-09-03 · TA获得超过1537个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:446万
展开全部
n太大,不能暴力。
一般是找规律过的。。
贴下我丑陋的代码吧=。=
#include<stdio.h>
int main()
{
int a,b,n,i,c[10001];
while(scanf("%d%d%d",&a,&b,&n)!=EOF)
{
if(a==0 && b==0 && n==0)
break;
c[1]=1;c[2]=1;
for(i=3;i<100;i++)
{
c[i]=(a*c[i-1]+b*c[i-2])%7;
if(c[i]==1 && c[i-1]==1)
break;
}
n=n%(i-2);
if(n==0)
printf("%d\n",c[i-2]);
else
printf("%d\n",c[n]);
}
}
。。。。。。。。。。。。。。。。。。。。。
正规的做法是矩阵乘法,没写过。
追问
我的代码见下:
#include
using namespace std;
int main()
{int A,B,n,i,f1,f2,f3,r[50],round; while(cin>>A>>B>>n&&(A||B||n)!=0) { r[0]=r[1]=f1=f2=1; for(i=2;i<n;i++) { f3=(A*f2+B*f1)%7; f1=f2; r[i]=f2=f3; if(f1==1&&f2==1) { round=i-1; f2=r[(n-1)%round]; break;}
} cout<<f2<<endl; } system("pause"); return 0; } 为什么过不了???咱俩规律差不多吧 跪求指点!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式