/*
ID: fykalv3
LANG: C
TASK: dualpal
*/
/*
遍历2到10逐个转换然后判断是不是回文数,就有个mark的变量记录是不是大于两种情况下的回文数
*/
#include <stdio.h>
/*
函数的功能就是转换然后再判断是不是回文数
*/
int pd(int num)
{
int i, j, m, k, p, q, flag;
int les[100];
k = 0;
for (i = 2; i <= 10; i++) {
flag = 1;
j = 0;
m = num;
while (m) {
les[j++] = m % i;
m /= i;
}
for (p = 0, q = j-1; p <= q && flag; p++, q--) {
if (les[p] != les[q])
flag = 0;
}
if (flag) // 这里是mark的作用
k++;
}
if (k >= 2) // 这里看出来mark的作用了
return 1;
else
return 0;
}
int main()
{
FILE *fin = fopen("dualpal.in", "r");
FILE *fout = fopen("dualpal.out", "w");
int N, S, l, sum = 0;
fscanf(fin, "%d %d", &N, &S);
for (l = S + 1; sum < N; l++) {
if (pd(l)) {
fprintf(fout, "%d\n", l);
sum++;
}
}
fclose(fin);
fclose(fout);
return 0;
}
Dual Palindromes
最新推荐文章于 2024-06-22 23:23:22 发布
本文介绍了如何通过遍历2到10之间的整数,逐个转换并判断是否为回文数,进而实现了一个用于识别双态回文数的高效算法。文中详细解释了算法实现过程,并提供了相应的代码示例。

924

被折叠的 条评论
为什么被折叠?



