HDOJ 2018 母牛的故事
来源:互联网 发布:php 数值 偏移量 编辑:程序博客网 时间:2024/04/29 22:50
开始的代码是错误的,后来的代码是正确的,但是我不知道为啥。感觉这样对我没啥帮助,想彻底搞清楚为什么。希望会对我自己有点帮助。
WA代码:
#include<iostream>#include<cstdio>using namespace std;int main(){ int n; while(cin >> n && n!=0){ int a[55]={0};a[1]=1;a[2]=1;a[3]=1;a[4]=1; int i,j,sum=0; if(n<=4){ for(i=1;i<=n;i++) sum+=a[i]; } else{ for (i=5;i<=n;i++){ for (j=1;j<=n-3;j++){ //printf("a[%d]=%d\n",j,a[j]); a[i]+=a[j]; //printf("a[%d]=%d\n",i,a[i]); } //printf("a[%d]=%d\n",i,a[i]); } for (i=1;i<=n;i++) sum+=a[i]; } cout << sum << endl; } return 0;}被AC了的代码:
#include<iostream>#include<cstdio>using namespace std;int main(){ int n; while(cin >> n && n!=0){ int a[55]={0};a[1]=1;a[2]=1;a[3]=1;a[4]=1; int i,j,sum=0; if(n<=4){ for(i=1;i<=n;i++) sum+=a[i]; } else{ for (i=5;i<=n;i++){ a[i]=a[i-1]+a[i-3]; } for (i=1;i<=n;i++) sum+=a[i]; } cout << sum << endl; } return 0;}
努力搞清楚为什么。当n=10的时候就出现了相等的情况。
补充:
原因是:在else中的第二个for循环里面j要小于等于的数不对,导致了整个程序中到了那个for循环时都循环n-3次,但是实际上是,循环的次数和上一个for循环的i的值有关,并且是i-3次。因此只需要将n改成i即可
0 0
- HDOJ 2018 母牛的故事
- hdoj 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- HDOJ 2018 母牛的故事
- hdoj 母牛的故事
- HDOJ 母牛的故事
- hdoj 母牛的故事
- hdoj 2018母牛的故事解题报告
- hdoj 2018 母牛的故事 【找规律】
- hdoj.2018 母牛的故事 20140725
- Java成为当下美国PC面临的最大安全威胁
- Spring MVC 中的 HandlerInterceptor
- ORA-28002: the password will expire within x days
- 【搭建vpn】Debian/Ubuntu搭建vpn
- ASP.NET—017:ASP.NET中清空按钮的实现
- HDOJ 2018 母牛的故事
- java中的匿名内部类总结
- windows驱动编程学习(1)--------了解驱动
- error C2065: 'IDM_PHONE1' : undeclared identifier
- 详细分析小米抢购软件的实现步骤
- java中数据存储以及内存分配
- 浏览器引擎
- test1
- 二叉树后序遍历