在 C++ 中打印某个数字是否为回文
Print whether a certain number is Palindromic or not in C++
我的 C++ 开发控制台中有这段代码,它应该检查给定的输入数字是否为回文数字(当反转时,它仍然是相同的数字)。问题是我不知道如何遍历计算以检查其是否为真并打印所需的语句
#include <iostream>
using namespace std;
bool isPalindrome(int x) {
int rev=0;
//complete the function
while(x>0){
rev = rev*10 + x%10;
x = x/10;
cout<<rev<<endl;cout<<x<<endl;
}
if(x==rev){
return true;
}else{
return false;
}
}
int main() {
int n;
cin >>n;
if(isPalindrome(n)) {
cout <<n<<" is a palindrome";
}
else {
cout << n<<" is NOT a palindrome";
}
return 0;
}
当我输入一个像707或808这样明显是回文的数字时,它会打印第二个语句707不是回文数字,请帮我纠正一下
您正在破坏 while 循环中的原始输入 x。
只需将它复制到一个临时变量中,它就会修复您的代码。喜欢
bool isPalindrome(int x) {
int rev=0;
int tmp = x;
while(tmp>0){
rev = rev*10 + tmp%10;
tmp = tmp/10;
}
return (x== rev);
}
你为什么不尝试使用这个:
#include<iostream>
#include<string>
using namespace std;
bool isPalindrome(string);
int main(){
int n;
cout<<"Enter a number: "<<endl;
cin>>n;
string ntoString=to_string(n);//here I converted the number to string
if(isPalindrome(ntoString))
cout<<n<<" is palindrome"<<endl;
else cout<<n<<" is not palindrome"<<endl;
system("pause");
return 0;
}
bool isPalindrome(string firstString){
for(int i=0;i<firstString.length();i++){
if(firstString[i]!=firstString[firstString.length()-1-i])
return false;
}
return true;
}
我的 C++ 开发控制台中有这段代码,它应该检查给定的输入数字是否为回文数字(当反转时,它仍然是相同的数字)。问题是我不知道如何遍历计算以检查其是否为真并打印所需的语句
#include <iostream>
using namespace std;
bool isPalindrome(int x) {
int rev=0;
//complete the function
while(x>0){
rev = rev*10 + x%10;
x = x/10;
cout<<rev<<endl;cout<<x<<endl;
}
if(x==rev){
return true;
}else{
return false;
}
}
int main() {
int n;
cin >>n;
if(isPalindrome(n)) {
cout <<n<<" is a palindrome";
}
else {
cout << n<<" is NOT a palindrome";
}
return 0;
}
当我输入一个像707或808这样明显是回文的数字时,它会打印第二个语句707不是回文数字,请帮我纠正一下
您正在破坏 while 循环中的原始输入 x。 只需将它复制到一个临时变量中,它就会修复您的代码。喜欢
bool isPalindrome(int x) {
int rev=0;
int tmp = x;
while(tmp>0){
rev = rev*10 + tmp%10;
tmp = tmp/10;
}
return (x== rev);
}
你为什么不尝试使用这个:
#include<iostream>
#include<string>
using namespace std;
bool isPalindrome(string);
int main(){
int n;
cout<<"Enter a number: "<<endl;
cin>>n;
string ntoString=to_string(n);//here I converted the number to string
if(isPalindrome(ntoString))
cout<<n<<" is palindrome"<<endl;
else cout<<n<<" is not palindrome"<<endl;
system("pause");
return 0;
}
bool isPalindrome(string firstString){
for(int i=0;i<firstString.length();i++){
if(firstString[i]!=firstString[firstString.length()-1-i])
return false;
}
return true;
}