Как вывести число Y?
можете помочь с программой?Вот условие:Дано трехзначное целое число ?. Все цифры должны быть отличны от нуля. Вывести новое трехзначное число ?, каждая цифра которого является остатком от деления числа 25 на соответствующую цифру числа ?.Должно быть выведено именно число ?, (оно может иметь меньше разрядов,если первые цифры получатся равными нулю), а не выведены на экран последовательно три цифры. Вот мой код:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int x, y;
cout << "Введите трехзначное число\n";
cin >> x;
int a, b, c;
a = x % 25;
b = x % 25;
c = x % 25;
int sum = a + b + c;
cout << "Введите однозначное число\n";
cin >> y;
(sum % y != 0) ? cout << y << " " :cout<<"NO\n";
system("pause");
return 0;
}
Что тут нужно исправить?Помогите пожалуйста.
Ответы (3 шт):
Вы просто складываете числа, а вам нужно ещё и умножить сотни и десятки на 100 и на 10 соответственно.
int sum = 100*a + 10*b + c;
Ёще увидел, что вы просто делите 3х значное число на 25, а не 25 на цифры числа х.
a = 25 % (x / 100);
b = 25 % (x / 10);
c = 25 % x;
Вы неверно поняли условие.
Нужно для числа Х = 478 записать Y которое
Y1= 25%4=1
Y2= 25%7=4
Y3= 25%8=1
Получившееся число это Y=141. Вот почему там не может быть 0 в X.
int a, b, c;
a = 25 %(x/100);
b = 25 %(x%100/10);
c = 25 %(x%10);
Y=a*100+b*10+c
Вот:
int main() {
int x;
cout << "Введите трехзначное число: ";
cin >> x;
int d[3];
for (int i = 0; x; x /= 10)
d[i++] = 25 % (x % 10);
x = d[2] * 100 + d[1] * 10 + d[0];
cout << x;
}
Но @Harry прав...