Поделитесь своими знаниями, ответьте на вопрос:
Составить программу, выполняющую вычисление: если число четное, то разделить его на 2, если нечетное - умножить на 2. (Если число делится на 2 , то остаток равен, не делится - не равен 0, используйте функцию mod)
#include <cstring>
int
main(void)
{
enum
{
MAX_BUF_SIZE = 100
};
char buf[MAX_BUF_SIZE];
scanf("%s", buf);
int n = strlen(buf);
int shift = 0;
for (int i = 0; i < n; i++) {
shift = (shift + buf[i] - '0') % 3;
}
shift = 3 - shift;
int sel = -1;
for (int i = 0; i < n; i++) {
int tmp = buf[i] - '0' + shift;
if (0 <= tmp && tmp <= 9) {
sel = i;
break;
}
}
if (sel == -1) {
for (int i = n - 1; i >= 0; i++) {
int tmp = buf[i] - '0' - shift;
if (0 <= tmp && tmp <= 9) {
buf[i] -= shift;
break;
}
}
} else {
buf[sel] += shift;
while ('0' <= buf[sel] + 3 && buf[sel] + 3 <= '9') {
buf[sel] += 3;
}
}
printf("%s\n", buf);
return 0;
}