usaco 1.5.2 pprime
2012-07-15 10:36
330 查看
本来也是很简单的题,可是调试花了我几个小时!!!问题很严重啊,那些小错误能把人气上天了,看来还要更仔细更耐心一点!代码写的不怎么样,因为很多小错误不得已用小代码改过去…………应该有改进的办法…………下面贴代码,以作纪念。
View Code
View Code
/*{ ID:jzy3209981 PROG:pprime LANG:C++ }*/ #include<stdio.h> #include<iostream> #include<string.h> #include<stdlib.h> #include<math.h> using namespace std; char startl[15]; char endlo[15]; char palindrome[15]; bool judget(int i,bool q) { int a,b; a=atol(palindrome); if(q==1) { b=atol(endlo); if(a>b) return 1; else return 0; } else { b=atol(startl); if(a<b) return 1; else return 0; } } bool judge() { int a,i; a=atol(palindrome); for(i=2;i<=sqrt(a);i++) if(a%i==0) return false; return true; } int main() { freopen ("pprime.in","r",stdin); freopen ("pprime.out","w",stdout); int start,end,startlen,endlen,i,p,q; scanf("%d%d",&start,&end); startlen=sprintf(startl,"%d",start); endlen=sprintf(endlo,"%d",end); if(startlen==1&&endlen==1) { for(i=startlen;i<=endlen;i++) printf("%d\n",i); return 0; } else if(startlen==1) for(i=startl[0]-48;i<10;i++) { if(i==5||i==7) printf("%d\n",i); } for(i=startlen;i<=endlen;i++) { if(i==1) continue; p=0; q=i-1; memset(palindrome,0,sizeof(palindrome)); palindrome[q+1]=NULL; palindrome[p]='1'; palindrome[q]='1'; while(p+1<=q-1) { p++; q--; palindrome[p]='0'; palindrome[q]='0'; } if(i==startlen) { if(!judget(i,0)&&judge()) printf("%s\n",palindrome); } else if(i==endlen) { if(!judget(i,1)&&judge()) printf("%s\n",palindrome); } else { if(judge()) printf("%s\n",palindrome); } while(1) { if(p==q) palindrome[p]++; else { palindrome[p]++; palindrome[q]++; } if(palindrome[p]==58) { if(p-1>0) { palindrome[p-1]++; palindrome[q+1]++; if(palindrome[p-1]==58) { if(p-2>0) { palindrome[p-2]++; palindrome[q+2]++; if(palindrome[p-2]==58) { palindrome[0]+=2; palindrome[i-1]+=2; palindrome[p-2]='0'; palindrome[q+2]='0'; } palindrome[p-1]='0'; palindrome[q+1]='0'; palindrome[p]='0'; palindrome[q]='0'; } else { palindrome[p-2]+=2; palindrome[q+2]+=2; palindrome[p-1]='0'; palindrome[q+1]='0'; palindrome[p]='0'; palindrome[q]='0'; } } else { palindrome[p]='0'; palindrome[q]='0'; } } else if(p-1==0) { palindrome[0]+=2; palindrome[i-1]+=2; palindrome[p]='0'; palindrome[q]='0'; } else { palindrome[0]+=2; palindrome[i-1]+=2; } } if(palindrome[0]>58) break; if(i==endlen&&judget(i,1)) break; else if(i==startlen&&judget(i,0)) continue; if(judge()) printf("%s\n",palindrome); } } return 0; }
相关文章推荐
- USACO1.5.2 Prime Palindromes (pprime)
- usaco 1.5.2——pprime
- usaco1.5.2(pprime)
- usaco 1.5.2 pprime
- USACO 1.5 Prime Palindromes (pprime)
- 【USACO】pprime
- USACO1.5.2--Prime Palindromes
- usaco1.5 pprime
- USACO 1.5.2 prime palindromes
- USACO:1.5.2 Prime Palindromes 回文质数
- usaco 1.5.2
- USACO-Section1.5 pprime
- usaco pprime
- usaco——pprime
- [USACO 1.5.2] Prime Palindromes
- usaco 1.5 pprime 2008.11.5
- USACO 1.5.2 Prime Palindromes 回文质数
- usaco 1.5.2 The Clocks
- USACO-1.5.2-Number triangles
- USACO1.5.2 Prime Palindromes (pprime)