1091 N-自守数 (15 分)(算法分析+代码实现)

1091 N-自守数 (15 分)(算法分析+代码实现),第1张

1091 N-自守数 (15 分)(算法分析+代码实现) 1091 N-自守数 (15 分) 题目链接 算法分析

题目也不难,对于每一个数,计算比它大的最小的10的x次方(代码中的函数cal())
然后让N从1到9跑一下,如果满足条件就输出并跳出循环,如果没有满足条件的数,就用做好标记,然后输出No即可。

代码实现
#include
using 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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5635038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存