数组内存放了一些个位数字,组成一个大数(从高位到低位),现在将这个数加 1,并输出加一以后的结果。
例如:
A=[2,3,1,1,4]
则结果为 [2,3,1,1,5]。
A=[7,8,9]
则结果为 [7,9,0]。
输入格式
第一行输入一个正整数 n(1≤n≤100),接下来的一行,输入用空格分隔的 n 个 0 到 9 的非负整数组成的数组 A[n]。
输出格式
输出一行,
n 个用空格分隔的整数,表示加一后的新数组。
样例输入
5 8 9 9 9 9
样例输出
9 0 0 0 0
#include<iostream>
using namespace std;
int main()
{
int n,a[110];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
a[n-1]+=1;
for(int i=n-1;i>0;i--)
{
if(a[i]==10)
{
a[i]=0;
a[i-1]+=1;
}
}
if(a[0]==10)
{
a[0]=0;
cout<<1<<" ";
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
本题就是我们平时做的数加一,该题数组中存的是从高位到低位的相应的数字,再加一。如果数组最后一位是9的话,就变成0,数组前一位加一,以此类推。注意的是如果输入的数组全是9的话,输出的位数应该多一位并且原数组的每一位都变成了0,0前面还要多输出一个1.。