客似云来
#include <stdio.h>
int main() {
int from, to;
unsigned long long D[81];
D[1] = 1;
D[2] = 1;
for (int i = 3; i <=81; i++) {
D[i] = D[i - 1] + D[i - 2];
}
while (scanf("%d %d", &from,&to) != EOF) {
unsigned long long sum = 0;
for (int i = from; i <= to; i++) {
sum = sum + D[i];
}
printf("%lld\n", sum);
}
getchar();
getchar();
return 0;
}
斐波那契凤尾
#include <stdio.h>
int main() {
int n;
unsigned long long f[100001];
f[0] = 1;
f[1] = 1;
for (int i = 2; i <100001; i++) {
f[i] = f[i - 1] + f[i - 2];
f[i] = f[i] % 1000000;
}
while (scanf("%d", &n) != EOF) {
printf(n<29?"%d\n":"%06d\n", f[n]);
}
getchar();
getchar();
return 0;
}
星际密码
#include <stdio.h>
int main() {
int n;
int m[101];
unsigned long long f[10001];
f[0] = 1;
f[1] = 1;
for (int i = 2; i <10001; i++) {
f[i] = f[i - 1] + f[i - 2];
f[i] = f[i] % 10000;
}
while (scanf("%d", &n) != EOF) {
for (int i = 1; i <= n; i++) {
scanf("%d", &m[i]);
}
for (int j = 1; j <=n; j++) {
printf("%04d", f[m[j]]);
}
printf("\n");
}
getchar();
getchar();
return 0;
}
养兔子
#include <stdio.h>
int main() {
int n;
unsigned long long D[91];
D[0] = 1;
D[1] = 1;//斐波那契数列的数组表示
for (int i = 2; i < 91; i++) {
D[i] = D[i - 1] + D[i - 2];
}
while (scanf("%d", &n) != EOF) {
printf("%lld\n", D[n]);//输出是重点
}
getchar();
getchar();
return 0;
}
蜜蜂寻路
#include <stdio.h>
int main(){
int n;
int a,b;
unsigned long long f[103];
f[0]=1;
f[1]=1;
int i;
for(i=2;i<103;i++){
f[i]=f[i-1]+f[i-2];
}
scanf("%d",&n);
while(n--){
scanf("%d %d",&a,&b);
printf("%lld\n",f[b-a]);
}
getchar();
getchar();
return 0;
}
骨牌铺方格
#include <stdio.h>
int main(){
int n;
unsigned long long f[103];
f[0]=1;
f[1]=1;
int i;
for(i=2;i<103;i++){
f[i]=f[i-1]+f[i-2];
}
while(scanf("%d",&n)!=EOF){
printf("%lld\n",f[n]);
}
getchar();
getchar();
return 0;
}