Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

с++ задачка

Сергей Лопатин Ученик (73), закрыт 9 лет назад
Дано натуральное число n. Найти и вывести все числа в интервале от 1 до n -1, у которых сумма всех цифр совпадает с суммой цифр данного. (пРИМЕР 44. 17,35,26


int N,i;

cout << "Enter N: ";

cin >> N;




for (int i = 1; i < N; i++)

{




int sumN = 0;

int sumI = 0;




sumN = (N % 10) + (N / 10);

sumI = (i % 10) + (i / 10);

if (sumN == sumI)

{

cout << i << endl;



}



}

ВОТ Я НАПИСАЛ У МЕНЯ ОШИБКА КАК ВЕРНО БУДЕТ?
Лучший ответ
zhodzky Просветленный (47734) 9 лет назад
Для двухзначных чисел у вас вроде работает нормально, по крайней мере я ошибки не заметил. Как я понимаю вопрос в том как делать чтобы работало при трёх и более значных n?

int summ(int N){
int sumN=0;
do
{
sumN+=N%10;
N/=10;
} while (N!=0);
return sumN;
}

int main(){
int N;
cout << "Enter N: ";
cin >> N;

int sumN = summ(N);

for (int i = 1; i < N; i++)
{
int sumI = summ(i);

if (sumN == sumI)
{
cout << i << endl;
}
}
}
Остальные ответы
Адам Мизаушев Мыслитель (5406) 9 лет назад
#include "stdafx.h"

using namespace std;

int Main()
{
int i, n;
cout << "Enter N: ";
cin >> n;
int sumn;
for (int a = 0; a < n::ToString()::Length; a++) sumn = System::Convert::ToInt32(sumn::ToString()::ToCharArray()[a]);
for (i = 0; i < n - 1; i++)
{
int sumi;
for (int a = 0; a < n::ToString()::Length; a++)
sumi = sumi + System::Convert::ToInt32(i::ToString()::ToCharArray()[a]);
if (sumi == sumn) cout << i << '\n';
}
return 0;
}
Сергей ЛопатинУченик (73) 9 лет назад
Что значат эти строки
System::Convert::ToInt32(sumn::ToString()::ToCharArray()[a]);

sumi = sumi + System::Convert::ToInt32(i::ToString()::ToCharArray()[a]);
Адам Мизаушев Мыслитель (5406) Перевод символа в число
Сергей ЛопатинУченик (73) 9 лет назад
попроще можно как нибудь пожалуйста
Адам Мизаушев Мыслитель (5406) Мне без компилятора тяжело. Я просто знаю и с телефона писал
zhodzkyПросветленный (47734) 9 лет назад
Такая каша даже не скомпилируется, вы уж извините.
Адам Мизаушев Мыслитель (5406) Неужели нет людей, кто это поймет? Господи...
Похожие вопросы