***
1-4 减一运算B (20分)
给定一个由非负整数组成的非空数组,也就是一个正整数N(1≤N<10
1000
)的各位数字,其中最高位数字存放在数组的首位, 且每个数组元素只存储一位数字。
请求出N-1对应的新数组并输出。
假设除了整数 0 之外,数组的首元素不会是零。
输入格式:
输入在一行中给出正整数N的各位数字,用空格隔开
输出格式:
输出N-1的各位数字,用空格隔开
输入样例:
2 8 6 6
输出样例:
2 8 6 5
#include <iostream>
using namespace std;
const long long int maxn = 100000LL;
int main(){
int n, a[maxn], len = 0;
while(cin >> n){
a[len++] = n;
if(cin.get()=='\n') break;
}
if(len == 1) printf("%d ", a[0] - 1);
else{
for(int i = len; i >= 0; i--){
if(a[i] != 0){
a[i] = a[i] - 1;
break;
}
else a[i] = 9;
}
if(a[0] == 0){
for(int i = 1; i < len; i++) printf("%d ", a[i]);
}
else{
for(int i = 0; i < len; i++) printf("%d ", a[i]);
}
}
return 0;
}