欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 1117 数字之王

1117 数字之王

2024/10/24 21:29:23 来源:https://blog.csdn.net/Moliay/article/details/140217965  浏览:    关键词:1117 数字之王

在这里插入图片描述
在这里插入图片描述

solution

  • 判断现有数字是否全为个位数
    • 全为个位数,找出出现次数最多的数字,并首行输出最多出现次数,第二行输出所有出现该次数的数值
    • 不全为个位数
      • 若当前位数值为0,无需处理
      • 若当前位数值非0,则每位立方相乘,并把结果个位和相加更新为当前位新数值
#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

#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;
} 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com