目录
一、题目内容
本题要求你从任意给定的两个 1 位数字 a1 和 a2 开始,用乘法口诀生成一个数列 {an},规则为从 a1 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为数列的一项。
二、输入描述
输入在一行中给出 3 个整数,依次为 a1、a2 和 n,满足 0≤a1,a2≤9,0<n≤10^3。
三、输出描述
在一行中输出数列的前 n 项。数字间以 1 个空格分隔,行首尾不得有多余空格。
四、输入输出示例
输入样例:
2 3 10
输出样例:
2 3 6 1 8 6 8 4 8 4
五、完整C语言代码
AC代码~
#include<stdio.h>
#include<stdlib.h>
int ans[1000000];
int tmp_ans[100];
int main(){
int a1,a2,N;
scanf("%d%d%d",&a1,&a2,&N);
ans[0] = a1;
ans[1] = a2;
int j = 0;
int i = 2;
while(i < N){
int tmp = ans[j] * ans[j+1];
if(tmp >= 10){
int k = 0;
while(tmp != 0){
tmp_ans[k++] = tmp%10;
tmp /= 10;
}
for(int t=k-1;t>=0;t--){
ans[i] = tmp_ans[t];
i++;
}
}
else{
ans[i++] = tmp;
}
j++;
}
for(i=0;i<N-1;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[N-1]);
return 0;
}