USACO dualpal
题意:寻找n个在2~10进制里面转换后至少有两次是回文数字的严格大于S的数字。
mark:仔细一点就ok了。
代码:
/* ID: andre_j2 LANG: C TASK: dualpal */ #include <stdio.h> #include <string.h> int dd(char a[]) { int i,j; j = strlen(a)-1; for(i = 0; i < j; i++,j--) if(a[i] != a[j]) return 0; return 1; } int pd(int n) { int m,i,j,f; char a[20]; f = 0; for(i = 2; i < 11; i++) { m = n; j = 0; while(m) { a[j++] = m%i + '0'; m /= i; } a[j] = '\0'; if(dd(a)) f++; if(f == 2) return 1; } return 0; } main () { freopen("dualpal.in", "r", stdin); freopen("dualpal.out", "w", stdout); int n,s,i; scanf("%d%d", &n, &s); for(s++, i = 0; i < n; s++) if(pd(s)) { printf("%d\n", s); i++; } exit (0); }