问题描述
从任意给定的两个一位数字 a1 和 a2 开始,用乘法口诀生成一个n项数列 {a1,a2,…,an},规则为从 a1 开始顺次进行,每次用当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是一位数,则其每一位都应成为数列的一项。输入说明
在一行中读入 3 个整数,依次为 a1、a2 和 n,满足 0≤a1,a2≤9,1≤n≤100。
输出说明
输出数列的前 n 项,各数字间以1个空格分隔。
#include <stdio.h>
int main()
{
int a[100];
int i,n,ji,j=2;
scanf("%d%d%d",&a[0],&a[1],&n);//输入
for(i=0;j<n;i++)//循环 i来控制每次乘积 防止跳项 j来控制数组后面项的赋值
{
ji=a[i]*a[i+1];//算出乘积
if(ji>9)//判断乘积的位数
{
a[j++]=ji/10;//j++保证不会对同一项重复赋值
a[j++]=ji%10;
}
if(ji<=9)
{
a[j++]=ji;
}
}
for(i=0;i<n;i++)//输出
printf("%d ",a[i]);
return 0;
}