1 条题解
-
0
C++ :
#include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> using namespace std ; int buff[10] ; int next( int n , int k ) { if( k == 0 || k == 1 ) return k ; long long k2 = ( long long ) k * k ; int size = 0 ; while( k2 != 0 ) { buff[size++] = k2 % 10 ; k2 = k2 / 10 ; } if( size < n ) n = size ; int res = 0 ; for( int i = 0 ; i < n ; i ++ ) { res = res * 10 + buff[--size] ; } return res ; } int main() { int T ; scanf("%d" , &T ) ; while( T -- ) { int n , k ; scanf("%d%d" , &n , &k ) ; int ans = k ; int k1 = k , k2 = k ; do { k1 = next( n , k1 ) ; k2 = next( n , k2 ) ; if( ans < k2 ) ans = k2 ; k2 = next( n , k2 ) ; if( ans < k2 ) ans = k2 ; }while( k1 != k2 ) ; printf("%d\n" , ans ) ; } return 0 ; }
- 1
信息
- ID
- 2135
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者