1008上下车。

1008上下车。
以下是我的思路1008上下车。b
程序不能自动解方程,于是我用一个变量h代替第二站上车的人数。
并在后面的计算中单独用数组装起来,
我一共用了九个数组,
ag,bg,cg,ah,bh,ch;
ag,ah,相加表示上车人数,
bg,bh相加表述下车人数,
cg,ch相加表示在车,
且h系的数组单位为1,g系数组单位为g(g已知);
最后根据n-1站人数求出h;

#include<bits/stdc++.h>
int main()
{ 
	int g,n,m,x,i;
	while(scanf("%d %d %d %d",&g,&n,&m,&x)!=EOF)
	{
		long long ag[27],bg[27],cg[27],ah[27],bh[27],ch[27];
		ag[1]=g;
		bg[1]=0;
		cg[1]=g;
		ah[1]=0;
		bh[1]=0;
		ch[1]=0;
		ag[2]=0;
		bg[2]=0;
		cg[2]=g;
		ah[2]=1;
		bh[2]=1;
		ch[2]=0;
		for(i=3;i<n;i++)
		{
			ag[i]=ag[i-1]+ag[i-2];
			ah[i]=ah[i-1]+ah[i-2];
			bg[i]=ag[i-1];
			bh[i]=ah[i-1];
			cg[i]=cg[i-1]+ag[i]-bg[i];
			ch[i]=ch[i-1]+ah[i]-bh[i];
		}
		int h;
		if((m-cg[n-1])%ch[n-1]==0)
		{
		h=(m-cg[n-1])/ch[n-1];
		printf("%d\n",cg[x]+ch[x]*h);}
		else
		{
			printf("No answer\n");
		}
	}
}

但是不知道为甚,还是有问题,,,,,

上一篇:输出五角形


下一篇:汇编学习笔记(11) - 中断