symons

___________每一天都是幸福的!!

  博客园  ::  :: 新随笔  ::  :: 订阅 订阅  :: 管理

2013年11月7日

摘要: 注意是两位数,必须输出01,02,03,这种#include int main(){ int begin,end; int i; int res[110]; int cnt; int sign; while(~scanf("%d%d",&begin,&sign)){ if(begin==0&&sign==0) break; end=(begin+1)*100-1; begin*=100; cnt=0; for(i=begin;i<=end;++i){ if(i%sig... 阅读全文
posted @ 2013-11-07 22:40 symons 阅读(175) 评论(0) 推荐(0)

摘要: #include int main(){ __int64 h[100],l[100]; int i,j; int n; while(~scanf("%d",&n)&&n!=-1){ h[0]=1; l[0]=0; for(i=1;i<=n;++i){ h[i]=h[i-1]*3+l[i-1]*2; l[i]=h[i-1]*1+l[i-1]*1; } printf("%I64d, %I64d\n",h[n],l[n]); } return 0;} 阅读全文
posted @ 2013-11-07 22:32 symons 阅读(146) 评论(0) 推荐(0)

摘要: #include int sum1(int n,int sign){ int sum=0; while(n){ sum+=n%sign; n/=sign; } return sum;}int main(){ int n; while(~scanf("%d",&n)&&n){ //printf("10=%d,16=%d,2=%d\n",sum1(n,10),sum1(n,16),sum1(n,2)); if( sum1(n,10)==sum1(n,16) && sum1(n,16)==sum1(n,12)... 阅读全文
posted @ 2013-11-07 22:24 symons 阅读(168) 评论(0) 推荐(0)

摘要: 这题还是递推,只能在后面加E,O,F三个字母,若在f(n-1)后加,E,F,则新增了2*f(n-1)个序列若加 O ,则只能在f(n-1)种尾部为E,F的序列后加,回到上一种情况,即f(n-2)*2把上面两种情况合起来就变成了 f(n)=2*f(n-1)+2*f(n-2)。#include int main(){ __int64 num[40]; int i,n; num[1]=3; num[2]=8; for(i=3;i<40;++i){ num[i]=2*(num[i-1]+num[i-2]); } while(~scanf("%d"... 阅读全文
posted @ 2013-11-07 20:35 symons 阅读(247) 评论(0) 推荐(0)

摘要: #include #include int main(){ int cnt,i,j,k; char str[1000+100],tmp[1000+10]; int strl,tmpl; while(~scanf("%s",str)){ if(!strcmp(str,"#")) break; scanf("%s",tmp); cnt=0; strl=strlen(str); tmpl=strlen(tmp); for(i=0;i=strl) break; if(s... 阅读全文
posted @ 2013-11-07 19:16 symons 阅读(145) 评论(0) 推荐(0)

摘要: 老题目了#include int main(){ int gird[110][110]; int i,j,max; int c,n; scanf("%d",&c); while(c--){ scanf("%d",&n); for(i=0;i=0;--i){ for(j=0;jgird[i+1][j+1]?gird[i+1][j]:gird[i+1][j+1] ); } } printf("%d\n",gird[0][0]); } return 0;} 阅读全文
posted @ 2013-11-07 19:08 symons 阅读(135) 评论(0) 推荐(0)

摘要: f(n)=f(n-1)+2*f(n-2)#include int main(){ __int64 num[55]; int i,n; num[1]=3;num[2]=6;num[3]=6; for(i=4;i<=50;++i){ num[i]=num[i-2]*2+num[i-1]; } while(~scanf("%d",&n)){ printf("%I64d\n",num[n]); } return 0;} 阅读全文
posted @ 2013-11-07 14:24 symons 阅读(140) 评论(0) 推荐(0)

摘要: 二进制转换#include void change(int n){ int num[100]; int cnt=0; while(n){ num[cnt]=n%2; n/=2; cnt++; } cnt--; while(cnt>=0){ printf("%d",num[cnt]); cnt--; } printf("\n"); return ;}int main(){ int n; while(~scanf("%d",&n)){ change(... 阅读全文
posted @ 2013-11-07 13:45 symons 阅读(188) 评论(0) 推荐(0)

摘要: 递推题目,由于只有一种瓷砖,1*2规格的,所以一块2*2的面积上只能有2种摆放方式,然后就跟上台阶那个差不多,上一步或者上两部。就是f[n]=f[n-1]+f[n-2];另外注意__int64的问题。#include int main(){ __int64 num[55]; int i,n; num[1]=1;num[2]=2;num[3]=3; for(i=4;i<=50;++i){ num[i]=num[i-1]+num[i-2]; } while(~scanf("%d",&n)){ printf("%I64d\n",num[... 阅读全文
posted @ 2013-11-07 13:41 symons 阅读(208) 评论(0) 推荐(0)

摘要: #include int init(char a){ if(a>='a'&&a<='z'){ return -(a-'a'+1); }else return a-'A'+1;}int main(){ int num,t; char a; scanf("%d",&t); getchar(); while(t--){ scanf("%c %d",&a,&num); getchar(); printf("%d\n",init( 阅读全文
posted @ 2013-11-07 13:05 symons 阅读(213) 评论(0) 推荐(0)