当前位置: 首页 > 知识库问答 >
问题:

回文函数

茹元魁
2023-03-14

我需要重写程序来使用一个函数是回文。它需要输入一个5位整数并返回一个布尔值(如果是回文则为true,如果不是回文则为false),并且不能包含任何cout语句。我不确定如果没有cout函数,我将如何做到这一点。这是我的代码:

#include <iostream>

using namespace std;

int main()
{
    int number, digit1, digit2, digit3, digit4, digit5;

    cout << "\nEnter a 5-digit integer: ";
    cin >> number;

//Break down input number into individual digits:
    digit1 = number / 10000;
    digit2 = number % 10000 / 1000;
    digit3 = number % 10000 / 100;
    digit4 = number % 10000 / 10;
    digit5 = number % 10;

    if ( digit1 == digit5 && digit2 == digit4 )
        cout << number <<" is a palindrome.\n";
             else
             cout << number << " is not a palindrome.\n";
             return 0;
         }
int isPalindrome ()
{

}

共有3个答案

子车高超
2023-03-14
string s;
    cout<<"\nEnter a string : " ;
    cin>>s;
    int length = s.length();

    char* arr = new char();

    int k = length;

    for(int i = 0 ; i <= length ; i++)
    {
        arr[i] = s[k];
        k -= 1;
    }

    if(!palindrome(s, arr, length))
    {
        cout<<"\nNot Palindrome\n";
    }

    else
    {
        cout<<"\nPalindrome\n";
    }
}

bool palindrome(string& s, char* arr, int length)
{
    int j = 0;
    for(int i = 1 ; i <= length; i++)
    {
        if(arr[i]!= s[j])
        {
            return false;
        }
        j++;
    }
    return true;
}
刘野
2023-03-14

不必指定数字包含多少位数。你可以试试这样:

    bool isPalindrome(int number) {
        int reverse = 0, copy = number;
        while(copy != 0) {
            reverse = reverse*10 + copy%10;
            copy /= 10;
        }
        return number == reverse;
    }
常茂
2023-03-14

这应该有助于你开始(不会破坏太多的乐趣)

int main(){
    //accept integer input using cin
    if(isPalindrome(input))
       cout << "yaay!";
    else
       cout << "nooouuu!";

}

bool isPalindrome (int input)
{
   //test things here
   return ( digit1 == digit5 && digit2 == digit4 ) 
   // ^ returns true if condition satisfied
}

此外,您分隔数字的方法不正确。应该是:

digit1 = number/10000 % 10;
digit2 = number/1000 % 10;
digit3 = number/100 % 10;
digit4 = number/10 % 10;
digit5 = number % 10;

当然,上述内容实际上应该是一个循环。

 类似资料:
  • 由于某种原因,函数总是返回false。传递的词是“你好”。我的第一个循环检查没有空格或空字符的单词的大小,以便在第二个循环中使用它作为参数。这返回false,这是正确的,但是当我传递“helleh”或“helleh”时,它们都返回false。我已经重写了至少5次,我不明白为什么它会返回false。

  • 出于某种原因,在下面的递归函数中, 永远不递增p,也就是说字符串s永远不是一个回文,尽管在我的程序中,s确实是一个回文,次数相当少。但是在下面一行中它仍然返回false 是因为功能吗?s采用的一些值为:aaa、aba、AAAA、abbb、bab 我已确保s中没有前后空格 P、 S:我已经检查过了,x==n 示例输入: 输出0。回文:aaaaaa、abaaba、aaaaaa

  • 我知道这个问题已经被问过很多次了,但是我的问题有点不同。这个任务要求我不验证一个字符串是否是回文——而是验证一个字符串中有多少回文(返回为“int”)。这应该使用迭代函数来完成 以下是我的迭代函数代码供参考: 我只是很难把它转换成递归函数。感谢所有帮助!

  • 请帮帮忙 我正在用VisualBasic2010用C写一个程序,这个程序叫做“回文整数”。我需要写两个函数,一个是//返回整数的倒数。例如,reverse(456)返回654//并带有标题:-- 倒整数(整数) 我需要写另一个函数,//返回true,如果数字是一个回文//标题:- bool isPalindrome(整数) 我需要使用reverse函数来实现isAlindrome函数。如果一个数字

  • 回调函数 返回上级 DDEnumCallback DDEnumCallbackEx EnumModesCallback EnumSurfacesCallback EnumVideoCallback DDEnumCallback 返回目录 DDEnumCallback是用于DirectDrawEnumerate函数的应用程序定义的回调函数。 BOOL WINAPI DDEnumCallback( G

  • 上一节中介绍了Fullpage的方法函数,那些函数只适合单独使用,如果想更加详细的控制Fullpage,就需要使用回调函数,接下来得文档将为您详细介绍Fullpage中的回调函数使用方法和参数。 afterLoad (anchorLink, index) 滚动到某一屏后的回调函数,接收 anchorLink 和 index 两个参数。 anchorLink 是锚链接的名称 index 是secti