题目名字L1-080 乘法口诀数列 (20 分)
题意
思路
首先定义一个数组,再将前两先输入,再按照题意,计算前两项的值,再将算出的值赋值给数组,在算出新的值之后,要判断是否>10,当大于10的时候要将数字先除以10得到十位上的数,再区域10就可以得到个位上的数,在得到新数时下标要++,并且下标要从3开始,因为算前面两个数的乘积时,就要想到重新定义下标,并且下标从3开始,然后再依次输出;
坑点
- 要将重新算的的数,重新定义下标
- 最后输出最后一个输出的时候没有空格;
代码
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int main()
{
int aa,bb;int n;//定义数组中的前两个数,因为输入的值不确定;
cin>>aa>>bb>>n;//输入数组的前两个数字;
a[1]=aa,a[2]=bb;
int sum;int c=3;
for(int i=1;i<=n;i++)
{
sum=a[i]*a[i+1];//算前两个数的乘积
if(sum>=10)//如果sum大于等于10,就要将一个数字分为两个数字;
{
a[c]=sum/10;c++;//取出十位上的数,下标c是从3开始的,并且每取一个数到数组中就将下标++;
a[c]=sum%10;c++;//取出个位上的数;
}
else if(sum<10)
{
a[c]=sum;//就直接将sum存入数组中;
c++;//下标++;
}
}
for(int i=1;i<=n;i++)
{
cout<<a[i];//输出数组;
if(i!=n)//如果下标不等于最后一个数,就输出空格;
{
cout<<" ";
}
}
return 0;
}