Jak zabrać się za to zadanie?

2015-11-26 14:43
VVonix
0

Wie ktoś? Wiem, że trzeba jakoś od końca, ale i tak nie mam pomysłu :/

Dla podanego poniżej programu napisanego w języku C podaj jaką liczbę wprowadził na wejściu
użytkownik skoro tekst wyświetlony na konsoli w wyniku uruchomienia programu to 21.

#include <stdio.h>
#include <stdlib.h>
int main(){
 int a=0,b=0,c=1,d=0;
 scanf("%d",&a);
 while(a>0) {
 b = a % 10;
 if (b % 2 == 1)
 d += b;
 else
 d += b * b;
 a /= 10;
 }
 printf("%d",d);
 return 0;
} 

Pozostało 580 znaków

2015-11-26 14:46
0

Wersja dla leniwych ? Skopiuj to do kompilatora, sprawdz zaleznosci dla roznych liczb lub szukaj takiej by dało 21 :)

Pozostało 580 znaków

2015-11-26 14:48
0

Jak sie zabrać? Za pomocą głowy. Widzisz że wypisuje d więc patrzysz skad się bierze wartość d ;]


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Kolega, to musi wszystko komplikować... :) przecież pytającemu nie zależy na insynuacjach odnośnie potrzeby logicznego myślenia, a jedynie sposobu zabrania się do rozwiązania zadania :) - MiM 2015-11-26 15:51

Pozostało 580 znaków

2015-11-26 14:54
0

robi jednego scanfa. Wiec odpal ten program w petli dla pierwszych stu liczb i zobacz czy bedzie tam gdzies liczba 12.

Albo zrozum dzialanie algorytmu i go opisz slownie

Pozostało 580 znaków

2015-11-26 14:56
0

Tip: wynik to suma kwadratów wszystkich cyfr parzystych w zmiennej a + wszystkie cyfry nieparzyste.


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.

Pozostało 580 znaków

2015-11-26 14:58
VVonix
0

Wiem jakie jest rozwiązanie. Nie chodzi mi to o zrobienie zadania i odłożenie. Chciałbym się dowiedzieć w jaki sposób dojść do tego rozwiązania. Czy niemożność odgadnięcia jest powodem lenistwa czy braku talentu - tego nie wiem. Siedzę nad tym i podobnymi zadaniami, wypisuję sobie na kartce, próbuję to jakoś odtwarzać "od tyłu" i nic nie wychodzi.

Nie pisałbym na forum, gdybym potrafił sam to rozwiązać.

To nie odtwarzaj od tyłu, tylko od przodu. Weź jakąś przykładową liczbę i zobacz co się dzieje ze zmiennymi po drodze, aż do wyniku. Powinieneś zauważyć, że dzieje się to, co napisałem Ci wyżej. - datdata 2015-11-26 15:01

Pozostało 580 znaków

2015-11-26 16:16
VVonix
0

No dobra, wiem teraz jak mniej więcej liczy ten kod. Ale tak czy siak nie ma znaczenia czy ktoś wpisze np:
54
45
411111
4311
2222222221
3333333
55551
4500000000000

To wynik i tak wyjdzie 21. Skąd mam wiedzieć w takim razie jaką liczbę wprowadzono na wejściu?

Pozostało 580 znaków

2015-11-26 16:22
0

Może to rozwiązanie ma więcej odpowiedzi?


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0