24h購物| | PChome| 登入
2009-07-23 22:21:09| 人氣1,016| 回應1 | 上一篇 | 下一篇

ACM 10515 Q10515: Power et al.

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

只要看M的尾數,以及N%(M的循環)

事先存在陣列之中 =]

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
 char x[102],y[102];
 int circle[10]={1,1,4,4,2,1,1,4,4,2};
 int L[10][4]={{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2},{1,9}};
 while(scanf("%s %s",x,y)==2)
   {
     int n=strlen(x),m=strlen(y),a,b,c;
     if(n==1&&m==1&&x[0]=='0'&&y[0]=='0') break;
     if(n==1&&x[0]=='0') {printf("0\n");continue;}
     if(m==1&&y[0]=='0') {printf("1\n");continue;}
     int xx=x[n-1]-48,yy[102]={0};
     for(a=0,b=m-1;b>=0;a++,b--) {yy[a]=y[b]-48;}

     for(a=m-1;a>=0;a--)
        yy[a]=(yy[a+1]*10+yy[a])%circle[xx];
     printf("%d\n",L[xx][yy[0]]);
   }
 return 0;
}

台長: 來源不明
人氣(1,016) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 10878 10878 - Decode the tape
此分類上一篇:ACM 138 Q138: Street Numbers

???
for(a=m-1;a>=0;a--)
yy[a]=(yy[a+1]*10+yy[a])%circle[xx];

佩服!
2009-07-25 22:06:53
版主回應
2009-07-26 07:15:30
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文