結果

問題 No.167 N^M mod 10
ユーザー tsuishitsuishi
提出日時 2021-02-15 15:36:48
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 1,602 bytes
コンパイル時間 1,122 ms
コンパイル使用メモリ 29,048 KB
実行使用メモリ 4,384 KB
最終ジャッジ日時 2023-09-30 10:10:31
合計ジャッジ時間 2,531 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 1 ms
4,380 KB
testcase_02 WA -
testcase_03 AC 1 ms
4,380 KB
testcase_04 AC 1 ms
4,376 KB
testcase_05 AC 0 ms
4,380 KB
testcase_06 AC 0 ms
4,380 KB
testcase_07 AC 1 ms
4,376 KB
testcase_08 AC 1 ms
4,376 KB
testcase_09 AC 1 ms
4,380 KB
testcase_10 AC 1 ms
4,376 KB
testcase_11 WA -
testcase_12 AC 0 ms
4,380 KB
testcase_13 WA -
testcase_14 AC 1 ms
4,376 KB
testcase_15 AC 0 ms
4,376 KB
testcase_16 AC 1 ms
4,376 KB
testcase_17 AC 1 ms
4,376 KB
testcase_18 WA -
testcase_19 AC 1 ms
4,380 KB
testcase_20 AC 1 ms
4,380 KB
testcase_21 AC 1 ms
4,376 KB
testcase_22 WA -
testcase_23 AC 1 ms
4,376 KB
testcase_24 AC 0 ms
4,380 KB
testcase_25 WA -
testcase_26 AC 0 ms
4,380 KB
testcase_27 AC 1 ms
4,380 KB
testcase_28 AC 1 ms
4,384 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Yukicoder №167 N^M mod 10 ★★
// https://yukicoder.me/problems/no/167
// ***********************
#define PRINCR do{printf("\n");fflush(stdout);}while(0)
#define GETLINE(str) do{char *p;fgets(str,sizeof(str),stdin);p=strchr(str,'\n');if(p)*p='\0';}while(0)
#define REP(a,b) for(int a=0;a<(int)(b);++a)
static char *GETWORD(char* str) {char c;char *cp;cp=&str[0];c=fgetc(stdin);while( c != EOF ){if((c==' ')||( c=='\n')) break;*cp++=c;c=fgetc(stdin);}*cp='\0';return &str[0];}
#define	GETINTS(a,b) {char s[34];int *ap=a;REP(i,b){GETWORD(s);sscanf(s,"%d", ap);ap++;}}
static int GETLINEINT(void) {char s[34];GETLINE(s);return atoi(s);}
static int GETWORDINT(void) {char s[34];GETWORD(s);return atoi(s);}
#define lolong  long long
const long long GETA = (1L << 32);
const int MOD = 10;
long long fastpow(long long x, long long n) {
    long long ret = 1;
    while (n > 0) {
        if (n & 1) ret = ret * x % MOD; // n の最下位bitが 1 ならば x^(2^i) をかける
        x = x * x % MOD;
        n >>= 1; // n を1bit 左にずらす
    }
    return ret;
}
char	str[10005];
int main() {
	int		len;
	char	backcom;
	int		aa,bb,cc;

	GETLINE(str);
	len = strlen( str ) -1;
	while( str[len] == '0' ) len--;
	aa = atoi( &str[len] );
    if( aa < 0 ) aa = 100;
    
	GETLINE(str);
	len = strlen( str ) -1;
	while( str[len] == '0' ) len--;
	bb = atoi( &str[len] );
    if( bb < 0 ) bb = 100;
	cc = fastpow( aa , bb ) % 10;
    if( aa == 0 ) cc = 0;
    //printf("aa %d, bb %d, cc %d\n", aa, bb, cc);
	printf("%d\n", cc );
	return 0;
}

0