这个程序有多组输入,而这多组输入的运算都是相同的,所以可以利用数组f之前计算过的信息。
在你的code里做的修改,如果有疑问,欢迎交流
#include<stdio.h>int main()
{
int a,b,n,c
int pre_max_idx = 2
int f[100]
f[1]=1
f[2]=1
while(scanf("%d%d%d",&a,&b,&n)!=EOF)
{
if(n<=pre_max_idx){//如果之前计算过就直接返回
printf("%d\n", f[n])
continue
}
if(n<=0)
continue
for(c=n+1,n=pre_max_idx+1n!=cn++)//这里从pre_max_idx开始
f[n]=(a*f[n-1]+b*f[n-2])&7
pre_max_idx = n-1//修改当前的最大
printf("%d\n",f[n-1])
}
return 0
}
方法如下:#include<stdio.h>
int main()
{
int x,z
scanf("%d %d",&x,&z)
double b = (double)(x-z)*100/z
if (b>50)printf("Exceed %.0f%%. License Revoked",b)
if(b>=10&&b<=50)printf("Exceed %.0f%%. Ticket 200",b)
if(b<10)printf("OK")
}