📄 1987.cpp
字号:
/* This Code is Submitted by icycandy for Problem 1987 on 2008-11-10 at 16:06:52 *//*李青峰 ID:qingfenghit*/
#include<stdio.h>
int f(int n,int m) /*定义一个函数求f(n)模的值*/
{
if (n<4&&n>0) /*当在0到4之间的时候直接特殊情况*/
{
return n%m;
}
int first=1,second=2,third=3;/*用递归的思想对每一次的数据替换,先赋初值*/
for (int i=4;i<n;i++)
{
int temp;
temp=first%m+third%m; /*执行函数f(n)=f(n-1)=f(n-2)的逐级替换*/
first=second%m;
second=third%m;
third=temp%m;
}
return (first+third)%m;
}
main()
{
int n,m,answer; /*answer就是所求的结果模*/
scanf("%d %d",&n,&m);
while (m<=10000&&m>=2&&n<=10000)
{
if (m==0&&n==0) /*当输入0 0的时候终止函数*/
{
break;
}
if (n<0) /*当n<0的时候求模的公式*/
answer=(n%m+m)%m;
if (n==0) /*当n=0的时候的模*/
answer=0;
if (n>0) /*当n>0的时候用函数f(n)求模*/
{
answer=f(n,m);
}
printf("%d\n",answer); /*输出结果*/
scanf("%d %d",&n,&m); /*执行多次输入数据*/
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -