回文测试功能

时间:2017-01-10 20:42:31

标签: c++ math numbers palindrome

此函数似乎适用于具有奇数位数的数字,但不适用于具有偶数位数的每个数字(例如,对于2662而不是906609,它返回true)。我一直试图弄清楚最后20-30分钟,但我还没找到原因。

#include <math.h>

int digits(int n)
{
    return log10(n)+1;
}

bool ispalindrome(int n)
{
    int c=digits(n);
        for(int i=0; i<c/2; i++){
            int a=pow(10,i),b=pow(10,c-i-1);
            if(  int(n/a) %10 != int(n/b) %10 ) return false;
        }
        return true;
}

#include <iostream>
#include <cstdlib>
int main(int, char**argv)
{
    while (*++argv)
        std::cout << *argv
                  << (ispalindrome(std::atoi(*argv)) ? " is a palindrome." : " is not a palindrome.")
                  << std::endl;
}

2 个答案:

答案 0 :(得分:2)

我无法重现,但我认为将int比较为字符串更容易== reversedString:

var modularpattern = (function () {
var sum = 0;

return {
    add: function () {
        sum = sum + 1;
        return sum;
    },

  }
} ());
var c = modularpattern;
c.add();   // 1
var d = modularpattern;
d.add();   //  2 but I want to be 1
 console.log(modularpattern.add());    // alerts: 3

请检查代码:main.cpp

答案 1 :(得分:0)

我无法重现您的结果 - 我得到了您的测试用例的预期答案。

顺便说一句,你可以通过简单地翻转数字然后与原始数据进行比较来避免function myFunction(){ wp_enqueue_script( 'rangeslider-js', get_template_directory_uri() . '/assets/js/rangeslider.js', array( 'jquery','theme-js' ), '1.0', false); } add_action( 'wp_enqueue_scripts', 'myFunction' ); 的需要:

<math.h>