主题:竞赛题求解
sunnyfish
[专家分:250] 发布于 2005-06-18 18:58:00
问题描述:
给定一个数列,其行数,列数不大于10的9次方,第一行为 1 2 3 5 8……,及菲波那契数列,第n行的开头的数字为前n-1行没有出现的最小整数,第2个数字的公式为a[n,2]=2*a[n,1]-(n-1),往后为菲波那契数列。
给定行数i,列数j,求这个数对m(m小于10的6次方)取模的结果。
我的程序如下,可结果不对,请各位大虾指教!
#include
void main()
{
unsigned long flag,b=0,d=1,e,f,n,num,i,j;
cout<<"Please enter row,colum and number:"< cin>>i>>j>>num;
for(flag=0;flag<=4;flag++)
{
for(n=0;n if(n==i-1)
break;
else
{
if(flag==0){d=d+3+b;b=d%num;}
if(flag==1){d=d+2+b;b=d%num;}
if(flag==2){d=d+3+b;b=d%num;}
if(flag==3){d=d+3+b;b=d%num;}
if(flag==4){d=d+2;b=d%num;}
}
}
if(i==1&&j==2)d=2%num;
if(j==1)d=d%num;
if(j!=1)
{
f=d;
e=d*2-i+1;
for(n=0;n {
d=(f+e)%num;
f=e;
e=d;
}
}
cout< }
回复列表 (共10个回复)
沙发
dfp [专家分:0] 发布于 2005-06-20 21:24:00
为什么把flag 定义成四啊
板凳
dfp [专家分:0] 发布于 2005-06-20 21:34:00
输出与输入的有些不对
3 楼
hs3180 [专家分:530] 发布于 2005-06-21 13:41:00
有高手可以找出每个数字的规律吗?
4 楼
sunnyfish [专家分:250] 发布于 2005-06-23 09:51:00
flag定义为4,因为从0到4,一共5个数字,我找到的规律是,从第一行的开头开始,以后每一行的开头顺次加上3,2,3,3,2,这个循环有5个元素,所以flag定义为4
5 楼
Keita [专家分:30] 发布于 2005-06-23 18:25:00
这是什么语言啊?
6 楼
sunnyfish [专家分:250] 发布于 2005-06-26 13:17:00
大哥,这是BC啊!
7 楼
smm [专家分:0] 发布于 2005-07-04 11:54:00
这样做没用de 偶去年AHOI的时候基本就是这样
得用黄金分割和矩阵乘法:(
8 楼
sunnyfish [专家分:250] 发布于 2005-07-10 13:06:00
看来参加过AHOI!请详细的解释以下!
9 楼
iRabbit [专家分:60] 发布于 2005-07-15 22:50:00
呵呵,hnoi的题目
就是用黄金分割跟矩阵搞了
你的那个程序找的规律不对的
10 楼
sunnyfish [专家分:250] 发布于 2005-07-19 07:51:00
说说啊!
我来回复