题目也不难,对于每一个数,计算比它大的最小的10的x次方(代码中的函数cal())
然后让N从1到9跑一下,如果满足条件就输出并跳出循环,如果没有满足条件的数,就用做好标记,然后输出No即可。
#includeusing namespace std; int cal(int x){ int ans = 1; while(x){ x /= 10; ans *= 10; } return ans; } int main(){ int n, k; scanf("%d", &n); for(int i = 1; i <= n; ++ i){ scanf("%d", &k); int devider = cal(k); bool flag = 1; for(int N = 1; N <= 9; ++ N) if(N * k * k % devider == k){ printf("%d %dn", N, N * k * k); flag = 0; break; } if(flag) puts("No"); } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)