检查不出哪里错了,帮忙看一下

ypcol070139 2009-08-21 02:56:27
There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).



Input
Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).



Output
Print the word "yes" if 3 divide evenly into F(n).

Print the word "no" if not.



Sample Input
0
1
2
3
4
5


Sample Output
no
no
yes
no
no
no
#include<stdio.h>
int main()
{
long n,i;
long a1=7,a2=11,a3;
while(scanf("%d",&n)!=EOF)
{
for(i=2;i<=n;i++)
{
a3=a1+a2;
a1=a2;
a2=a3;
}
if(a2%3==0)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
结果都对的啊,但提交上去是错的?帮忙检查一下错哪里了??
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kojie_chen 2009-08-21
  • 打赏
  • 举报
回复
顶楼上,好像是pku上的
Victor_Dinho 2009-08-21
  • 打赏
  • 举报
回复
a3=a1+a2;
改成
a3=(a1+a2)%3。不知道会不会超时~~~

其实这道题可以先找规律再算的。
f(0)、f(1)……除以3的余数分别是
1 2 0 2 2 1 0 1 1 2 0 2 2 1 0 1……
其中1 2 0 2 2 1 0 1就是一个循环。

下面是我的程序
#include <stdio.h>

bool div3[8] = {false, false, true, false, false, false, true, false};

int main()
{
long n,i;
long a1=7,a2=11,a3;
while(scanf("%d",&n)!=EOF)
{
if (div3[n%8])
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
return 0;
}
coverallwangp 2009-08-21
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
long n,i;
long a1=7,a2=11,a3;
while(scanf("%d",&n)!=EOF)
{

for(i=2;i <=n;i++)
{
a3=a1+a2;
a1=a2;
a2=a3;
}

if (0 == n)
{
if(a1%3==0)
printf("yes\n");
else
printf("no\n");
}
else
{
if(a2%3==0)
printf("yes\n");
else
printf("no\n");
}

}
return 0;
}


你没有考虑当n = 0的情况,这时候判断的是a1不是a2,虽然你的结果是对的,但是不正确
xue040506 2009-08-21
  • 打赏
  • 举报
回复
for(i=2;i < n;i++)或for(i=3;i <=n;i++)
是不是这样的
jinwei1984 2009-08-21
  • 打赏
  • 举报
回复
显然溢出了
flameearth 2009-08-21
  • 打赏
  • 举报
回复
你交哪去了?
Dreammail 工具集 一、使用方法: 目前包括3个小工具: 1、Webmail 自动登录配置文件辅助工具 这个工具可以根据用户所给的登录地址,生成自动登录配置文件。 使用起来很简单。 1) 在“Webmail 登录 URL”中,输入Webmail地址。在此,我们以Gmail为例,输入:http://gmail.google.com/mail 2) 点击“生成配置文件”,稍后片刻,配置文件就在右边的文本窗口中有显示了。 3) 保存配置文件,点击"保存...",将文件改名为"域名.html",比如,如果我们的email是xxx@gmail.com,那么我们就将配置文件取名为"gmail.com.html"的形式(如果忘记了输入.html后缀,工具会帮你自动填上)。 然后就可以在Dreammail中使用这个配置文件了。 如果发生有些网站必须得有javascript才能够登录的情况,或者有些网站必须使用验证码,请分别选择"带验证码的网站"和"需要Javascript",然后再重新生成配置文件即可。 由于网站各异,因此可能需要用户辅助修改生成后的配置文件内容。比如,有的时候,不能够自动识别出来用户名的输入框,那只能请用户帮忙输入" value="[%DM_USERNAME]"在相应的input元素中。 2、POP3 密码恢复工具 论坛中有些用户反映,OE的密码无法导出,而且因为长时间使用,已经忘记了帐户的密码了。为了帮助迁移,这里提供了一个POP3密码恢复工具。该工具适用于包括OE在内,所有的POP3邮件客户端软件。 使用起来也很简单: 1) 在本机运行这个小工具,然后,切换到"POP3 密码恢复工具", 点击"开始监听"。 2) 修改邮件客户端软件中已经忘记密码的帐户的属性,将POP3服务器地址改为本机地址。(本机地址在软件中有显示,任意一个均可)。 3) 让邮件客户端软件收取该帐户邮件。 4) 该帐户的用户名和密码将会自动地显示在工具下半部分的文本框内。 3、网络诊断工具 经常有人询问为什么发不出信或者收不了信;还有一些新手,刚开始使用的时候,经常会设置误的服务器地址,甚至有时忘记了设置DNS或者网关。而在他们在寻求帮助的时候,经常会说不清楚自己的网络环境,这给大家给予新人帮助带来很大困难。 这个工具可以帮助新手检查当前网络状态,而且,当用户报告误的时候,可以贴上这个工具产生出来的诊断报告,这样更有利于大家了解新用户出时系统环境。 使用方法很简单,选择网络诊断工具,然后根据提示填上所有文本框,然后点击开始诊断。在诊断过程中,窗口可能没有响应,这是正常现象,在诊断完成后,工具界面就恢复正常了。 如果大家需要报告误的时候,可以将诊断信息报告保存下来,然后传到论坛上,或者贴到论坛上。这样大家就更容易分析你的情况了。 二、运行环境: Dreammail Toolkit的运行环境是需要有.Net Framework 2.0,大部分用户应该都没有安装。所以,需要安装.net framework 2.0的用户,请在下列地址中下载并安装,安装过程中可能需要重新启动,.Net Framework的大小大约是23MB。 http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=en .Net Framework 2.0 需要Windows Installer 3.0以上的版本。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧