#include
using namespace std;
int getDigits(int n)
{
if (n == 0){
return 1;
}
int digits = 0;
while (n){
digits++;
n /= 10;
}
return digits;
}
int getFirst(int n, int i)
{
if (n == 0){
return 0;
}
while (i--){
n /= 10;
}
return n % 10;
}
int main()
{
int op1,op2, ans, digits;
char oper;
cin >> op1 >> oper >> op2;
if (oper == '+'){
ans = op1 + op2;
digits = getDigits(ans);
for (int i = 0; i < digits - getDigits(op1); i++){
cout << " ";
}
cout << op1 << endl;
for (int i = 0; i < digits - getDigits(op2); i++){
cout << " ";
}
cout << op2 << endl;
for (int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
int tmp = op2 % 10 + op1;
op2 /= 10;
for (int i = 0; i < digits - getDigits(tmp); i++){
cout << " ";
}
cout << tmp << endl;
if (op2){
for (int i = 0; i < digits - 2; i++){
cout << " ";
}
cout << op2 << endl;
}
else{
return 0;
}
for (int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
cout << ans << endl;
}
else if (oper == '-'){
ans = op1 - op2;
digits = getDigits(ans);
for (int i = 0; i < digits - getDigits(op1); i++){
cout << " ";
}
cout << op1 << endl;
for (int i = 0; i < digits - getDigits(op2); i++){
cout << " ";
}
cout << op2 << endl;
for (int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
cout << ans << endl;
}
else if (oper == '*'){
ans = op1 * op2;
digits = getDigits(ans);
for (int i = 0; i < digits - getDigits(op1); i++){
cout << " ";
}
cout << op1 << endl;
for (int i = 0; i < digits - getDigits(op2); i++){
cout << " ";
}
cout << op2 << endl;
for (int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
int counter = 0;
while(op2){
int num = op2 % 10;
op2 /= 10;
int tmp = num * op1;
for (int i = 0; i < digits - getDigits(tmp) - counter; i++){
cout << " ";
}
cout << tmp << endl;
counter++;
}
for(int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
cout << ans << endl;
}
else{
ans = op1 / op2;
digits = getDigits(op1) + getDigits(op2) + 1;
for (int i = 0; i < digits - getDigits(ans); i++){
cout << " ";
}
cout << ans << endl;
for (int i = 0; i < digits - getDigits(op1); i++){
cout << " ";
}
for (int i = 0; i < getDigits(op1); i++){
cout << "-";
}
cout << endl;
cout << op2 << "|"<< op1 << endl;
int counter = 1;
int tmp = op1;
while (counter <= getDigits(ans)){
int first = getFirst(ans, getDigits(ans) - counter);
for (int i = 0; i < digits - getDigits(first * op2) + counter - getDigits(ans); i++){
cout << " ";
}
cout << first * op2 << endl;
for (int i = 0; i < digits; i++){
cout << "-";
}
cout << endl;
if (counter == getDigits(ans)){
tmp = tmp - first * op2;
}
else{
tmp = tmp - first * op2 * 10;
}
for (int i = 0; i < digits - getDigits(tmp); i++){
cout << " ";
}
cout << tmp << endl;
counter++;
}
}
}
你到底是要C还是C++?说话自相矛盾的。