每日一练 通货膨胀-x国货币

简介: 每日一练 通货膨胀-x国货币

本次来自CSDN本站的2023年3月16日(期)题目!

题目描述

X国发行货币最高面额为n。 次高面额为n的因子。 以此类推。 X国最多发行多少种货币。

输入描述

输入整数n。(1<=n<=1000000)表示货币的最大面额

输出描述

输出货币的种类

示例:输入10,输出3

题目原图

解题思路

这道题可以用贪心的思路来解决。

首先,可以发现最大面额的货币只有一种,次大面额的货币可以是最大面额的因数,再往下,每种货币面额只能是它上一个面额的因数,所以每个面额只能由上一个面额的因数转移而来。因此,我们从最大面额开始,不断求出当前面额的因数,直到得到面额为1,这样就可以得到所有的货币种类数。

具体地,可以采用一个循环,从最大面额n开始,每次找到当前面额i的最大因数j,然后将i更新为j,继续循环,直到i等于1时结束循环,循环过程中计数器加1即可。

实现时,可以用一个while循环不断找到当前面额的最大因数,可以用i/2的方式加速查找。代码如下:

代码实现

// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int solution(int n){
    int result = 0;
    for (int i = n;i>=1;i--){
        if(n%i == 0) {
            result++;
            n = i;
        }
    }
    // TODO:
    return result;
}
int main() {
    int n;
    std::cin>>n;
    int result = solution(n);
    std::cout<<result<<std::endl;
    return 0;
}

用的是示例模板!采用的C++语言编写!

运行结果

难点和亮点

首先要想到的是,最高面额的货币肯定是必须发行的,因此最多的货币种类数目至少是1。接着,如果最高面额为n,那么次高面额一定是n的因子,次次高面额一定是次高面额的因子,以此类推,直到最低面额为1为止。

因此,我们可以从最高面额n开始,依次找出它的因子,再找出每个因子的因子,直到找到最低面额1为止,这样就可以快速计算出货币种类的数目。在找因子的过程中,可以使用从1到n的循环,判断每个数是否是n的因子来实现。

另外,可以利用一个变量count来记录已经找到的货币种类数目,每找到一个新的货币面额,就将count加1,最终输出count即可。

总之,这道编程题的亮点在于需要巧妙地利用数学知识和循环,快速计算出最多的货币种类数目。


相关文章
|
测试技术 C语言 C++
PTA团体程序设计天梯赛-练习集:L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
221 0
|
机器学习/深度学习 人工智能 程序员
2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三
⭐L1一阶题 ⭐L1-089 最好的文档 (5分)—水题 👉👉👉👉👉👉L1-089 最好的文档👈👈👈👈👈👈 有一位软件工程师说过一句很有道理的话:“Good code is its own best documentation.”(好代码本身就是最好的文档)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。 输出格式: 在一行中输出 Good code is its own best documentation.。 输入样例: 无 输出样例: Good code is its own best documentation.
801 0
|
Java BI API
2021辽宁省大学生程序设计竞赛(正式赛)G.字节类型(大数)
2021辽宁省大学生程序设计竞赛(正式赛)G.字节类型(大数)
157 0
2021辽宁省大学生程序设计竞赛(正式赛)G.字节类型(大数)
|
算法 安全 定位技术
团体程序设计天梯赛(上)
团体程序设计天梯赛
450 0
团体程序设计天梯赛(上)
|
存储 大数据
团体程序设计天梯赛(下)
团体程序设计天梯赛(下)
400 0
团体程序设计天梯赛(下)
|
Ubuntu Linux
Elementary OS 两位创始人因资金问题翻脸,公司前路未卜
Elementary OS 两位创始人因资金问题翻脸,公司前路未卜
166 0
Elementary OS 两位创始人因资金问题翻脸,公司前路未卜
|
算法
大一女生用数学符号作情诗赠男友 被赞“高大上”
见惯了“我爱你”、“I LOVE YOU”等示爱方式,你是否会感到审美疲劳?近日,武汉长江工商学院大一女生吴华杰用数学符号“-∞”、“+∞”和几个简单的英文单词向男友表达爱意,被同学们称赞“高端、大气、上档次”,并获得了该校举办的“三行情诗”征文比赛一等奖。
307 0
大一女生用数学符号作情诗赠男友 被赞“高大上”
“数学界的诺贝尔”公布2019年得主,首位女数学家获奖
得主Karen Keskulla Uhlenbeck目前在普林斯顿大学任职,在规范理论领域贡献卓越。
475 0