24h購物| | PChome| 登入
2009-03-17 19:03:36| 人氣688| 回應0 | 上一篇 | 下一篇

2006 NPSC F. 費波那星

推薦 0 收藏 0 轉貼0 訂閱站台

費波那進位法,通過原因不明

/************************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
 char x[1001],y[1001];
 while(scanf("%s",x)==1)
   {
    if(x[0]==48&&strlen(x)==1) break;
    scanf("%s",y);
    int n=strlen(x),m=strlen(y),max=0,flag=0;
    int ans[1005]={0},a,b,c;
    for(a=0;a<n;a++)
     ans[a]=ans[a]+x[a]-48;
    for(a=0;a<m;a++)
     ans[a]=ans[a]+y[a]-48;
    for(a=0;a<=1004;a++)
     {
      if(ans[a]==1&&ans[a+1]==1)
       {
        ans[a]--;
        ans[a+1]--;
        ans[a+2]=ans[a+2]+1;
        flag=1;
       }
      if(ans[a]==2&&a>=2)
       {
        ans[a+1]=ans[a+1]+1;
        ans[a-2]=ans[a-2]+1;
        ans[a]=0;
        flag=1;
       }
      if(ans[a]==2&&a==0)
       {
        ans[a+1]=ans[a+1]+1;
        flag=1;
        ans[a]=0;
       }
      if(ans[a]==2&&a==1)
       {
        ans[a+1]=ans[a+1]+1;
        ans[a-1]=ans[a-1]+1;
        ans[a]=0;
        flag=1;
       }
      if(ans[a]==3)
       {
        ans[a+2]=ans[a+2]+1;
        ans[a-1]=ans[a-1]+1;
        ans[a]=0;
        flag=1;
       }
      if(ans[a]==1&&ans[a-1]==1)
       {
        ans[a]--;
        ans[a-1]--;
        ans[a+1]=ans[a+1]+1;
        flag=1;
       }
       if(flag==1&&a==1004) {a=-1;flag=0;}
     }
    for(a=1003;a>=0;a--)
     if(ans[a]!=0) {max=a+1;break;}
    for(a=0;a<max;a++)
     printf("%d",ans[a]);
    printf("\n"); 
   }
 return 0;
}

台長: 來源不明
人氣(688) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: NPSC |
此分類下一篇:2008 NPSC C. 喵喵抓老鼠
此分類上一篇:2007 NPSC E. 東方幻想鄉

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文