刚转c++的萌新求助(一道约瑟环问题,本人WA一半,但样例过了)
  • 板块学术版
  • 楼主刘芝麻
  • 当前回复17
  • 已保存回复17
  • 发布时间2020/7/14 14:03
  • 上次更新2023/11/6 23:09:13
查看原帖
刚转c++的萌新求助(一道约瑟环问题,本人WA一半,但样例过了)
208269
刘芝麻楼主2020/7/14 14:03

本人代码:

#include<bits/stdc++.h>
using namespace std;
int a[200],n,k,i,b[200],ans,j;
bool c[200]; 
int main()
{
	cin>>n>>k;
	a[1]=1;
	a[2]=1;
	for(i=3;i<=n;i++)
	  a[i]=a[i-1]+a[i-2];
	i=0;
	while (n!=ans)
	{
		j++;
		i++;
		if (i>n) i=i-n;
		if (c[i]) j--;
		if (j==k) 
		{
		c[i]=true;
		ans++;
		b[ans]=a[i];
		j=0;
		}
	} 
	for (i=1;i<=ans;i++)
	  printf("%d",b[i]);
return 0;
}

题目: 某银行保险箱的金钥匙上刻有N和K两个整数,其中N<100且K≤N,根据这两个数,用如下的方法就能算出保险箱的密码,从而可以打开保险箱。

由斐波那契数列1,1,2,3,5,8,13,21……的前N项按顺序组成一个数字环,按数K报数,即从第1个数开始报数,每报数到K的就出列,然后从下一个数开始报数,一直到所有的数都出列为止,出列所组成的一个数字序列就是该保险箱的密码。

索菲现在保留着祖父留下的保险箱的金钥匙,但不知道密码是什么。你能帮他算出来吗?

输入

输入文件numcode.in仅一行,包含两个整数N和K,其中0<K≤N≤100。

输出

输出文件numcode.out只有一行,为保险箱的密码序列。

样例输入

8 3

样例输出

2815121313

2020/7/14 14:03
加载中...