C++
x
63
1
2
3
4
using std::cin;5
using std::cout;6
using std::setw;7
using std::string;8
9
// 表示を開始するべき桁 (0でない最初の桁、または(全部0の場合)最後の桁) の位置を返す10
int getDisplayStartPoint(const int num[], int n)11
{12
for (int i = n - 1; i > 0; i--)13
{14
if (num[i] != 0)15
{16
return i;17
}18
}19
return 0;20
}21
22
// 値が逆順に格納された配列を1行で出力する23
void printArray(const int num[], int n, int width)24
{25
int start = getDisplayStartPoint(num, n);26
for (int i = width - 1; i >= 0; i--)27
{28
if (i > start)29
{30
cout << ' ';31
}32
else33
{34
cout << num[i];35
}36
}37
cout << '\n';38
}39
40
int main()41
{42
const int n = 50;43
string input;44
int num[n] = {0};45
int value[n] ;46
int sum[n];47
48
cout << "入力>";49
cin >> input;50
cout << "\n";51
52
for (int i = 0; static_cast<unsigned int>(i) < input.length(); i++) 53
{54
value[i] = input[input.length() - 1 - i] - '0';55
sum[i] = num[i] + value[i];56
}57
58
printArray(num, n, n);59
cout << setw(n) << input << "\n";60
cout << "---------------------------------------------------\n";61
printArray(sum, input.length(), n);62
}63
$ g++ prog.cc -Wall -Wextra -std=c++98 -pedantic
Stdin
123Start
入力>
0
123
---------------------------------------------------
123
0
Finish