【华为面试题】给定一个数字(整数),判断它是否回文
来源:互联网 发布:手机淘宝如何注册账号 编辑:程序博客网 时间:2024/05/19 19:32
#include <iostream>using namespace std;//---------------------------------------------------------------------------//给定一个数字(整数),判断它是否回文//假设这是一个有效数字#pragma argsused int main(int argc, char* argv[]){int num[100]={0}; //按位分析字符cout<<"Please Input A Number String"<<endl; //引申:输入的同时获得长度,或专门建立获取数据长度的函数(整、小) //整数、小数,本文暂考虑小数情形 int num_len=0; //数字长度 int num_tmp=0; //输入字符——先只考虑整数 cin>>num_tmp; int last_num= getchar(); if (last_num==10 || num_tmp!=0) //有输入,且以换行(10)结束{ cout<<"Ensure Your Input Is: "<<num_tmp<<endl; //确认输入 } bool isLoopStr=true; //是否回文,先获利长度和各位 //预设为true,则后面找false跳出点;反之亦然 int num_tmp1=num_tmp; int j=0; //j:输入整数的长度减1 while (num_tmp1/10>0) { num[j] = num_tmp1%10; num_tmp1 = num_tmp1/10; j++; } num[j] = num_tmp1; //判断整数是否回文 for (int k=0; k < (j+1)/2; k++) { if (num[k] != num[j-k]) { isLoopStr = false; break; } } if (isLoopStr) cout<<"Input Number Is A LoopString"<<endl; else cout<<"Input Number Is Not A LoopString"<<endl; cout<<"Press Any Key to Exit!"<<endl; getchar(); return 0;}