-6
生长时varialbe“长长”发疯我用C写了一个简单的程序++的做法,因为我正在学习C++,所以他计划采取的输入数量例如123,然后它可以逆转,以321号并将其添加到它的原始数字中,然后再次反转该数字并检查它是否与未颠倒的数字相同,如果不相同,则重复数次,直到颠倒的数字与非颠倒的数字相同。C++:在循环
对我的问题: 我已经设置了很长的变量,因为在这个计算中可以显示大数字,我的问题是,当数字进入循环(loop2)时,它似乎最大值或可以看到的结果在屏幕上。
注意:首先while循环不打算重复我把代码,它这样,如果你把在已经符合要求的号码,我可以跳过该代码。
NOTE2:我在Python写了这个程序完全相同的方式和它的作品完美,我可以为还提供源是否有帮助。
注3:在意见不介意的文字,它是我的语言。
注4:在例如我把screenshoot从我输入应在我与我的用Python编写的
对不起,我的英文不好,并感谢同一个程序测试了4个步骤来解决数196121。
/* while(number!=0){
reverse = reverse * 10;
reverse = reverse + number%10;
number = number/10;
}
*/
#include <iostream>
using namespace std;
int main()
{
int count = 1;//Varijabla koja broji korake
int loop1 = 1; //varijabla za definiranje rada petlje
int loop2 = 1; //varijabla za definiranje rada petlje
long long num = 0ll; //Broj koji se unosi
long long rev = 0ll; //Privremena varijabla
long long tmp = 0ll; //Privremena varijabla
long long tmp_ = 0ll; //okrenuta privremena varijabla "tmp"
long long var_ = 0ll; //Privremena varijabla
long long zasprovj = 0ll;//varijabla za pocetnu provijeru
long long number = 0ll;//pomocna varijabla kod okretanja
cout << "UKOLIKO SE UNESE BROJ KOJI NIJE MOGUĆE IZRAČUNATI PROGRAM CE OSTATI U BESKONACNOJ PETLJI KAO STO JE NPR. BROJ 196 !"<<endl;
cout << endl;
cout << endl;
cout << endl;
cout << "MOLIMO UNESITE BROJ: ";
cin >> num; //Unos broja
cout << endl;
number = num; // broj koji okrecemo izjednacujemo s brojem koji smo unesli
//okretanje broja
while (number != 0)
{
zasprovj = zasprovj * 10;
zasprovj = zasprovj + number % 10;
number = number/10;
}
//provjera je li broj koji je unesen isti kao i njegov okrenuti broj
//i preskakanje ostatka programa izjednjacavanjem loop1 i loop2 s 0
if (num == zasprovj)
{
cout << "Operacija izvrsena, rezultat: " << zasprovj << " Koraka = 0";
loop1 = 0;
loop2 = 0;
}
while (loop1 == 1)
{
number = num;
while (number != 0)
{
rev = rev * 10;
rev = rev + number % 10;
number = number/10;
}
cout << "okrenuti uneseni broj je: " << rev << endl;
tmp = rev + num;
cout << "rev + n = "<<tmp<<endl;
number = tmp;
while (number != 0)
{
tmp_ = tmp_ * 10;
tmp_ = tmp_ + number % 10;
number = number/10;
}
cout << "okrenuti tmp = " << tmp_ << endl;
if(tmp == tmp_)
{
cout << "Izracun je: " << tmp << "<-- u koraka: " << count << endl;
loop2 = 0;
loop1 = 0;
}
cout << ">>>>>>> "<<count<<". STEP <<<<<<"<<endl;
loop1 = 0;
}
while (loop2 == 1)
{
count = count + 1;
cout << ">>>>>>> " << count << ". STEP <<<<<<" << endl;
number = tmp_;
while(number!=0)
{
rev = rev * 10;
rev = rev + number%10;
number = number/10;
}
tmp = rev + tmp_;
cout << "rev + tmp_ = "<<tmp<<endl;
number = tmp;
while (number != 0)
{
tmp_ = tmp_ * 10;
tmp_ = tmp_ + number%10;
number = number/10;
}
cout << "reversed tmp(tmp = rev + tmp_) = " << tmp_<<endl;
if (tmp == tmp_)
{
cout << "Izracun je: "<<tmp<<"<-- u koraka: " <<count<<endl;
loop2 = 0;
}
}
cout << endl;
cout << endl;
cout << "CTRL + C za izlaz";
cin >> rev;
}
请提供[MCVE]再现的问题。有这么大的代码墙,再加上一半的变量(更不用说注释)不是英文的事实,使得很难理解代码实际上做了什么。 –