1117 数字之王


solution

  • 判断现有数字是否全为个位数
    • 全为个位数,找出出现次数最多的数字,并首行输出最多出现次数,第二行输出所有出现该次数的数值
    • 不全为个位数
      • 若当前位数值为0,无需处理
      • 若当前位数值非0,则每位立方相乘,并把结果个位和相加更新为当前位新数值
cpp 复制代码
#include<iostream>
using namespace std;
int n1, n2, flag[10] = {0}, a[1001], maxn = -1, judge = 0, first = 1, d;
int main(){
	scanf("%d%d", &n1, &n2);
	for(int i = n1; i <= n2; i++){
		a[i] = i;
	}
	if(n2 > 9) judge = 1;
	while(judge){
		judge = 0;
		for(int i = n1; i <= n2; i++){
			int t1 = 1, t2 = 0, t = a[i];
			if(t == 0) continue;
			while(t){
				d = t % 10;
				t /= 10;
				t1 *= d * d * d;
			}
			while(t1){
				d = t1 % 10;
				t1 /= 10;
				t2 += d;
			}
			a[i] = t2;
			if(t2 > 9) judge = 1;
		}
	}
	for(int i = n1; i <= n2; i++){
		flag[a[i]]++;
	}
	for(int i = 0; i < 10; i++){
		if(flag[i] > maxn) maxn = flag[i];
	}
	printf("%d\n", maxn);
	for(int i = 0; i < 10; i++){
		if(flag[i] == maxn){
			if(first) first = 0;
			else printf(" ");
			printf("%d", i);
		}
	}
	return 0;
} 

or

cpp 复制代码
#include<iostream>
using namespace std;
int n1, n2, flag[10] = {0}, a[1001], maxn = -1, judge = 0, first = 1, d;
int main(){
	scanf("%d%d", &n1, &n2);
	for(int i = n1; i <= n2; i++) a[i] = i;
	if(n2 > 9) judge = 1;
	while(judge){
		judge = 0;
		for(int i = n1; i <= n2; i++){
			int t1 = 1, t2 = 0, t = a[i];
			if(t == 0) continue;
			while(t){
				d = t % 10;
				t /= 10;
				t1 *= d * d * d;
			}
			while(t1){
				d = t1 % 10;
				t1 /= 10;
				t2 += d;
			}
			a[i] = t2;
			if(t2 > 9) judge = 1;
		}
	}
	for(int i = n1; i <= n2; i++){
		flag[a[i]]++;
		if(flag[a[i]] > maxn) maxn = flag[a[i]];
	}
	printf("%d\n", maxn);
	for(int i = 0; i < 10; i++){
		if(flag[i] == maxn){
			if(first) first = 0;
			else printf(" ");
			printf("%d", i);
		}
	}
	return 0;
} 
相关推荐
trueEve4 分钟前
SQL,力扣题目1369,获取最近第二次的活动
算法·leetcode·职场和发展
天若有情6738 分钟前
c++框架设计展示---提高开发效率!
java·c++·算法
ahadee16 分钟前
蓝桥杯每日真题 - 第19天
c语言·vscode·算法·蓝桥杯
Theliars23 分钟前
C语言之字符串
c语言·开发语言
Root_Smile25 分钟前
【C++】类和对象
开发语言·c++
Reese_Cool26 分钟前
【数据结构与算法】排序
java·c语言·开发语言·数据结构·c++·算法·排序算法
加密新世界32 分钟前
优化 Solana 程序
人工智能·算法·计算机视觉
搬砖的小码农_Sky1 小时前
C语言:结构体
c语言·数据结构
飞升不如收破烂~2 小时前
redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)
算法·哈希算法
九圣残炎2 小时前
【从零开始的LeetCode-算法】3354. 使数组元素等于零
java·算法·leetcode