Liczby wesołe
Ostatnio zmodyfikowano 2014-06-16 10:59
kekhet Temat założony przez niniejszego użytkownika |
Liczby wesołe » 2014-06-15 18:13:15 Witam. Piszę program sprawdzający czy wprowadzona liczba jest wesoła, niestety robię gdzieś błąd i nie mam pojęcia gdzie. Uprzedzam, że jestem mocno początkujący. Liczba wesoła jest liczbą naturalną zdefiniowaną w następujący sposób: Obliczamy sumę kwadratów cyfr składających się na liczbę. Powtarzamy tę operację dla kolejnych wyników tak długo, aż uzyskamy liczbę 1 lub wyniki zaczną się powtarzać. Jeżeli w wyniku procesu otrzymaliśmy 1, pierwotna liczba jest liczbą wesołą. W przeciwnym przypadku jest liczbą niewesołą.
#include <iostream> #include <cstdio> #include <string> #include <iomanip> #include <ctime> #include <cstdlib> #include <conio.h> #include <fstream> using namespace std; int main() { int n,a,b; cout<<"Podaj liczbe: "<<endl; cin>>n; do { a=(n/10)%10; cout<<a<<endl; b=n%10; cout<<b<<endl; n=a*a+b*b; cout<<n<<endl;} while(n==4||n==1); if(n==1) cout<<"1- TAK"; else cout<<"2- NIE";
getch(); return 0; }
Wiem że jest dużo niepotrzebnych bibliotek ale kopiowałem z innego projektu. Mógł by ktoś napisać co jest nie tak i jak to poprawić? Z góry dzięki. |
|
michal11 |
» 2014-06-15 19:35:33 Liczba naturalna może mieć więcej niż 2 cyfry. Wstaw kod w znaczniki. |
|
kekhet Temat założony przez niniejszego użytkownika |
Opis » 2014-06-15 19:57:57 Wybacz ale niezbyt wiem jak to poprawić. :/ Mógł byś nieco dokładniej to opisać? Trochę to przerobiłem, ale dalej największym problemem jest to, że jeśli już na początku n nie równa się 4 lub 1, to algorytm który to przerabia działa tylko raz zamiast doprowadzać do wyniku.
#include <iostream> #include <iomanip> #include <conio.h>
using namespace std; int main() { int n,a,b; cout<<"Podaj liczbe: "<<endl; cin>>n; if(n==4||n==1) {if(n==1) cout<<"1- TAK"; if(n==4) cout<<"2- NIE"; getch(); return 0;} do { a=(n/10)%10; cout<<a<<endl; b=n%10; cout<<b<<endl; n=a*a+b*b; cout<<n;} while(n!=4||n!=1);
getch(); return 0; } |
|
pekfos |
» 2014-06-16 10:59:46 std::to_string() i działaj na tekście? Z liczbami ci nie idzie najwyraźniej.. |
|
« 1 » |