이 기능은 숫자의 홀수로하지만 (예를 들어, 그것은 2662에 대한 사실이 아닌 906,609에 대한 반환) 숫자의 짝수 모든 번호를 번호를 작동하는 것 같군. 나는 지난 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;
}
사면 명백한하지만이 아닌 당신이 문자열 회문 결정을위한 마찬가지로 숫자 비교로 자리를 수행 :
BTW, 당신은 단순히 숫자를 반전 한 후 원래와 비교하여
<math.h>
의 필요성을 피할 수 있습니다 , 입력 매개 변수의 역 자릿수에서 제조 된 두 번째 숫자를 만들고 그 결과를 원래 값과 비교하는 것이 더 쉬울까요? – WhozCraig어떤 라이브러리를 사용하셨습니까? #include? 컴파일 할 때 경고가 없습니까? –
http://cpp.sh/9kt4를 재현 할 수 없습니다 – RyanP