您的位置:首页 > 娱乐 > 明星 > 长春又有疫情了吗_京东app下载官网_百度快照推广一年要多少钱_广州aso优化

长春又有疫情了吗_京东app下载官网_百度快照推广一年要多少钱_广州aso优化

2024/12/27 5:54:18 来源:https://blog.csdn.net/2401_87995839/article/details/144166206  浏览:    关键词:长春又有疫情了吗_京东app下载官网_百度快照推广一年要多少钱_广州aso优化
长春又有疫情了吗_京东app下载官网_百度快照推广一年要多少钱_广州aso优化

        Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

e4dbbb7b2a3c4781b056a6cc75084bb2.gif

我的博客:<但凡.

欢迎点赞关注!

1、题目描述

        如果x加上x的各个数字之和得到y,就说x是y的生成元。给出(1<=n<=100000),求最小生成元。无解输出0。


2、思路分析

       我们首先想到的是遍历每个数, 找出他们的最小生成数。但这样的话如果我要求找五个数的最小生成数呢?我们就得遍历5次,显然这样效率不够高。所以我们不如索性一次性找到所有数的最小生成元,然后存放起来,最后查表即可。


3、题解

#include<stdio.h>
#define maxn 100000
int main()
{int T = 0;int m = 0;int arr[maxn] = { 0 };//初始化存放被生成数的数组int x = 0;int y = 0;//找出所有属于1——10000这个范围的被生成数,并记录他们的最小生成元for (m = 0;m < maxn;m++)//循环存入所有被生成数的最小生成元{x = m;y = m;while (x)//计算被生成数{y +=x % 10;x /= 10;}if (arr[y]==0||m<arr[y])//条件为当这个元素为0或新的被存入元素(生成元)更小{arr[y] = m;//记录这个被生成数y的最小生成元}}//输入要查找最小生成元的次数scanf_s("%d", &T);while (T){//输入想要查找的元素scanf_s("%d", &y);printf("%d\n", arr[y]);T--;}return 0;
}

       今天的内容就分享到这,我们下期再见!

版权声明:

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

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