解题报告:
如果只是想做出来,那打表看一看50以内的情况就立即猜出来了。f[i]能整除f[j]的充要条件是i能整除j。
具体的证明是一篇超长的论文……http://www.doc88.com/p-98477387710.html
AC代码:
#include <cstdio>
int main()
{
int i, j;
while(true)
{
scanf("%d%d", &i, &j);
if(i == 0 && j == 0)
break;
if(j % i == 0)
printf("1");
else
printf("0");
printf("\n");
}
return 0;
}
最短代码:
main(a,b){while(scanf("%d%d",&a,&b),a)printf("%d\n",b%a==0);}
题目:
A:勇敢与鲁莽查看 提交 统计 提问 时间限制: 1000ms 内存限制: 65536kB
描述
勇敢与鲁莽是好朋友。
有一天鲁莽要挑战勇敢的智商,给勇敢出一道题目:已知一个序列,f[1] = 1, f[2] = 1, f[i] = f[i - 1] + f[i - 2](i >= 3),要问这个序列中任意2个数的整除关系。
现在请你化身为勇敢,迎接鲁莽的挑战。
输入
输入包含多组数据,每一组数据占一行,包含2个整数i,j,满足(3 <= i <= j <= 1000000)。当i = j = 0时,输入结束。
输出
对于每一行输入,包含一行输出,0表示f[j]不能被f[i]整除,1表示f[j]可以被f[i]整除。
样例输入
3 7
4 8
5 5
0 0样例输出
0
1
1