#include <iostream>
using namespace std;
int main(){
int a1,a2,n,a[1000];
cin>>a1>>a2>>n;
for(int i=0;i<n;i++){
a[0]=a1;
a[1]=a2;
a[i+2]=a[i]*a[i+1];
if(a[i+2]>=10){
a[i+3]=a[i+2]%10;
a[i+2]=a[i+2]/10;
}
if(i=n-1){
cout<<a[i];
}
else{
cout<<a[i]<<" ";
}
}
return 0;
}
为什么执行出的结果是一个很大的负数呢?求解
#include<bits/stdc++.h>
using namespace std;
int main() {
int d,b,n;
cin>>d>>b>>n;
int a[n];
a[0]=d;
a[1]=b;
int i=2;
int j=2;
while(i<n) {
int x=a[j-1]*a[j-2];
if(x<10) {
a[i++]=x;
} else if(x>9&&x<100) {
a[i++]=x/10;
a[i++]=x%10;
}
j++;
}
for(int k=0; k<n; k++) {
if(k)
cout<<" ";
cout<<a[k];
}
return 0;
}