搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 【求助】c语言,新手,我又 RE 又 MLE 又 TLE 了,不知道怎么办了,帮忙看看代码吧>_<
标题:
【求助】c语言,新手,我又 RE 又 MLE 又 TLE 了,不知道怎么办了,帮忙看看 ...
取消只看楼主
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
11
楼
得分:0
回复 12 楼 vvvcuu
不对不对不对,我混淆了两个题了,我说的那个(就是你截了图的那个)是另外一道题,是一个数列的。我刷题刷昏脑袋了。
学长的意思是:假设我输入了a=1,b=2,那么我们会有f(1)=1,f(2)=1,f(3)=3,f(4)=5,f(5)=4,f(6)=0,f(7)=1,f(8)=1,从这里开始,就是不断地循环这几个f的值了,当a,b输入是其他的值也会这样,然后。。。。。我现在正在写这个代码
2014-07-17 19:35
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
12
楼
得分:0
回复 12 楼 vvvcuu
你不是这个意思吗?我看到了你的这一句“当A和B给定以后,f(n)将会按一定的规律出现,呈现一定的循环.因此,只需要考虑A,B即可.”就以为你跟学长讲的是一样的了。。。。
2014-07-17 19:39
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
13
楼
得分:0
回复 12 楼 vvvcuu
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int a,b,n,f[100000],i,p;
while(~scanf("%d%d%d",&a,&b,&n)&&(a+b+n))
{
f[1]=1;
f[2]=1;
for(i=3;i<=n;i++)
{
f[i]=(f[i-1]*a+f[i-2]*b)%7;
if(f[i]==1&&f[i-1]==1)
{
p=i-2;
n=n%p;
break;
}
}
printf("%d\n",f[n]);
}
return 0;
}
这是我后来写的我感觉我是对的,我用很多组数据测过,但就是AC不了,不知道哪里出问题了
2014-07-17 21:01
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
14
楼
得分:0
回复 16 楼 vvvcuu
while(~scanf("%d%d%d",&a,&b,&n)&&(a+b+n)这个是多组数据输入的的意思,并且a+b+c不等于0,你应该要看一下多组数据输入的方式,百度知道里面有一个回答就很详细。
同学AC了,就是你说的那个n%p是否等于0的问题,要分两种情况。
谢了,交流了这么多
2014-07-18 18:48
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
15
楼
得分:0
回复 16 楼 vvvcuu
交流了这么多很开心
2014-07-18 18:49
xuanyuxian
等 级:
新手上路
帖 子:16
专家分:0
注 册:2014-7-17
第
16
楼
得分:0
回复 19 楼 beyondyf
鸽笼原理?我去查查。
f[j + (n - j) % (i - j)中的j其实可以换成周期内的任意一个数吧,对吗?
把运算的语句放到for()里面会不会优化一些?
但是如果那样找的话,每个i和i-1都要与前面的每一对j和j-1对比,私以为还是先存起来,再判断是否出现两个1好一些
2014-07-25 13:11
16
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-434117-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.274811 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved