C#
#include <stdio.h>
int a[10000],b[10000];
void n_add(int a[],int b[]){
for(int i = 0;i < 1000;i++){
int c = a[i];
a[i] += b[i];
b[i] = c;
}
for(int i = 0;i < 1000;i++){
if(a[i] >= 10){
a[i] %= 10;//进位
a[i+1]++;
}
}
}
int main(){
a[0] = 1; //位数
b[0] = 1;
int i = 2; //项
while (a[999] == 0)//没有1000位为真
{
n_add(a,b);
i++;
}
printf("%d\n",i);
return 0;
}
Java
package exercise;
public class _1000位斐波那契数 {
public static void main(String[] args) {
int a[] = new int[1000];
int b[] = new int[1000];
int c[] = new int[1000];
a[0] = b[0] = 1;
int num = 2;
while(true) {
c = b.clone();
for(int i = 0;i < 1000;i++) {
b[i] += a[i];
}
a = c.clone();
for(int i = 0;i< 1000-1;i++) {
if(b[i] >=10) {
b[i+1]++;
b[i] = b[i] % 10;
}
}
num++;
if(b[999]!=0) {
break;
}
}
System.out.println(num);
}
}
结果:4782