【SGU】118. Digital Root

1049 단어 sgu
전송문:【SGU】118.Digital Root
제목 분석: 여러분의 합을 세는 실질은 바로 이 수 대 9를 본보기로 삼아 물문제가 되었다.x*y%k = (x%k)*(y%k)%k.
코드는 다음과 같습니다.
#include <map>
#include <vector>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std ;

typedef long long LL ;

#pragma comment ( linker , "/STACK:16777216" )
#define rep( i , a , b ) for ( int i = ( a ) ; i <  ( b ) ; ++ i )
#define For( i , a , b ) for ( int i = ( a ) ; i <= ( b ) ; ++ i )
#define rev( i , a , b ) for ( int i = ( a ) ; i >= ( b ) ; -- i )
#define clr( a , x ) memset ( a , x , sizeof a )

const int MAXN = 1005 ;

int a[MAXN] ;

void solve () {
	int n , ans = 0 , x , y = 1 ;
	scanf ( "%d" , &n ) ;
	For ( i , 1 , n ) {
		scanf ( "%d" , &x ) ;
		y = x % 9 * y % 9 ;
		ans = ( ans + y ) % 9 ;
	}
	printf ( "%d
" , ans ? ans : 9 ) ; } int main () { int T ; scanf ( "%d" , &T ) ; while ( T -- ) solve () ; return 0 ; }

좋은 웹페이지 즐겨찾기