1439: 很简单的回文
时间限制: 1 Sec 内存限制: 128 MB提交: 82 解决: 9
[ 提交][ 状态][ 讨论版]
题目描述
回文数看起来总是那么舒服,可是他的个数也太少了点,为了增加它的个数,我们把只要经过排列后能形成回文的数叫做"简单回文数".
好吧定义已经出现了,那么我们就解决一个数是不是简单回文吧。
输入
一个非负整数N,如果N是-1,结束输入。(N<10^1000000)
输出
如果满足条件输出Yes,否则输出No。
样例输入
1 112 123 -1
样例输出
Yes Yes No
一开始疯狂错误原因:有小bug 没有发现 有一类数据过不了
忘记了 类似100 这种数据
#include<stdio.h> #include<string.h> char a[1000000]; int b[15]; int cnt; int main() { int d,i; while(gets(a)!=NULL) { int cnt=0; memset(b,0,sizeof(b)); d=strlen(a); if(d==1) {printf("Yes\n");continue;} i=1; while(a[i]=='0') {i++;}//防止 1000 这样的数据 if(i>=d) {printf("No\n");continue;} if(d==2&&a[0]=='-'&&a[1]=='1') break; i=0; while(a[i]==0) {i++;} for(i;i<d;i++) b[a[i]-'0']++; for(i=0;i<10;i++) if(b[i]%2!=0) cnt++; if(cnt==1||cnt==0) printf("Yes\n"); else printf("No\n"); } return 0; }