PDA

View Full Version : Помощ по информатика



vpowerrr
12-20-2011, 19:53
Здравейте на всички :)
В този раздел има доста теми в които по-знаещи помагат на по-незнаещи по математика, химия и т.н, но не открих тема за помощ по информатика, така че се надявам някой информатик да се намери и да ми помогне със следната задача:
Да се състави програма, която въвежда от клавиатурата естествено число k. Програмата да извежда всички трицифрени числа, сумата от цифрите на които е равна на числото k.
До сега след редица размисли и схеми стигнах до следния алгоритъм:

#include <iostream.h>
int main()
{
int k,d,s,l,ch;
cin>>k;

while ((k%k==0) || (k%10==0))
{
for (int i=100;i<=999;i++)
{
d=i%10;

s=i%10;

l=i%10;

ch=d+s+l;

if (ch==k)
{
cout<<"ch="<<ch<<endl;
}
else
{
cout<<"nqma takova chislo"<<endl;
}

}
}
return 0;
}
Имам адски много логически грешки в алгоритъма но се надявам някой да ми обясни как стават нещата.
Не разбирам как да проверя дали k е естествено число и как да изкарам цифрите от всички трицифрени числа, да ги сборувам и да ги съпоставя с k.
Ще съм много благодарен на малко помощ защото изперквам ;д.
Мерси!

Domad
12-20-2011, 21:31
d=i%10; - вади единиците

s=i%10; - грешно... -> s=i/10%10 - вади десетиците

l=i%10; - грешно... -> l=l/100 - вади стотиците

Естествените числа са 1,2,3..n. Щом записваш в int тя програмата ще си гръмне, ако му дадеш грешен вход, тъй че не се притеснявай (C-то е грозотия тъй, че може да бъркам тук, ама кой нормален човек го ползва?!)...

Също, ако искаш сложи един if преди да въртиш цикъла
if(ch<0 || ch>27) {
cout<<"Invalid"
}

и цикъла го бутни в else... щото реално няма как сбора от цифрите на 3 цифрено число да е <0 или >27

И тоя while го махай, че т'ва си е 100%-ов безсмислен безкраен цикъл... Сми не хванах въобще идеята му де...

vpowerrr
12-21-2011, 07:47
Мерси много, но все още не загрявам как трябва да бъде целия алгоритъм...както и да е. Поне разбрах как се вадят цифрите от число.
А за С-то, такова учим в у-ще, нямам голям избор. А и не е чак такъв шит, използва се.

Ако има още някакви идеи са добре дошли :)

Chacho
12-21-2011, 08:32
Мерси много, но все още не загрявам как трябва да бъде целия алгоритъм...както и да е. Поне разбрах как се вадят цифрите от число.
А за С-то, такова учим в у-ще, нямам голям избор. А и не е чак такъв шит, използва се.

Ако има още някакви идеи са добре дошли :)

Цикъл, условен оператор и алгоритъмът за изваждане на числа са ти нужни.

vpowerrr
12-21-2011, 13:49
Стана : )) Мерси :)

Chacho
12-21-2011, 22:25
Имал съм в предвид алгоритъм за изваждане на цифри от число, но явно си се досетил сам, пък и Domad ти беше помогнал с него. Пак заповядай!