6-2 穷举回文数输出
回文数,是指正读和反读都一样的数。例如,123321是回文数。
函数接口定义:
int SplitData(int num, int b[]);
int isPalindrome(int b[], int k);
SplitData拆分数据存入数组,并返回数据的位数,num为待拆分数据,数组b为拆分后每位数存入的数组,返回值为num的位数。
isPalindrome判断b数组中的数字是否为回文数,k为num位数,返回值为0表示”不是“,1表示”是“
写出接口对应的两个函数定义。
裁判测试程序样例:
#include<iostream>
using namespace std;
int SplitData(int num, int b[]);
int isPalindrome(int b[], int k);
int main()
{
long num, n ;
int b[10], i, j, r1, r2, k, flag, count = 0;
char ch[10];
cin >> r1 >> r2;
for(num = r1; num < r2; num++)
{
k = SplitData(num, b);
if(isPalindrome(b, k))
{
count++;
cout << num << (count % 5 ? " " : "\n");
}
}
cout << endl;
return 0;
}
/* 请在这里填写答案 */
输入样例:
输入查找范围区间端点值(左闭右开),查找该区间内的回文数,例如:
88 141
输出样例:
每行5个数据,空格分隔。例如:
88 99 101 111 121
131
c++解析:
int SplitData(int num, int b[])
{
int i = 0;
while (num)
{
b[i++] = num % 10;
num /= 10;
}
return i;
}
int isPalindrome(int b[], int k)
{
for (int i = 0; i < k + 1 / 2; i++)
{
if (b[i] != b[k - 1 - i])return 0;
}
return 1;
}