生成元 rust解法

news/2025/2/9 6:08:15 标签: rust, 算法, 开发语言

如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求n的最小生成元。无解输出0。例如,n=216,121,2005时的解分别为198,0,1979。
【分析】
本题看起来是个数学题,实则不然。假设所求生成元为m。不难发现m<n。换句话说,只需枚举所有的m<n,看看有没有哪个数是n的生成元。
可惜这样做的效率并不高,因为每次计算一个n的生成元都需要枚举n-1个数。
更快的方法是一次性枚举100000内的所有正整数x,求出对应的y,x是y的最小生成元,最后查表即可。

解法:

rust">use std::io;
fn main() {
    let mut ans = vec![0; 100000 + 50];
    for i in 1..=100000 {
        let mut x = i;
        let mut y = i;
        while x > 0 {
            y += x % 10;
            x /= 10;
        }
        if ans[y] == 0 || i < ans[y] {
            ans[y] = i;
        }
    }
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let mut cnt: usize = buf.trim().parse().unwrap();
    while cnt > 0 {
        let mut buf = String::new();
        io::stdin().read_line(&mut buf).unwrap();
        let y: usize = buf.trim().parse().unwrap();
        println!("{}", ans[y]);
        cnt -= 1;
    }
}

http://www.niftyadmin.cn/n/5026688.html

相关文章

JavaScript与jQuery(下篇)

JavaScript与jQuery笔记&#xff08;下篇&#xff09; 一、获取jquery二、jquery选择器三、jquery事件四、jquery操作Dom元素————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#xffe3;︶&#xffe3;)&#xff0c;谢…

day7_C++

day7_C MyVector.h #ifndef MYVECTOR_H #define MYVECTOR_H #include <iostream>using namespace std;typedef int size_type;template<typename TYPE> class MyVector { private:int num;TYPE *data;TYPE * headiterator;TYPE * enditerator;public://无参构造My…

C语言再学习 -- C语言实现 sin 和 cos 功能

之前在 C语言再学习 – C 标准库 - math.h 里有介绍 sin 和 cos 函数。但是这两个函数C语言该怎么实现呢&#xff1f; 首先看一下这两个函数的介绍&#xff1a; 函数介绍 C 库函数 - sin() C 标准库 - <math.h> 描述 C 库函数 double sin(double x) 返回弧度角 x 的正…

springboot 自动装配原理

一.原理解释 Spring Boot的自动配置是Spring框架的一个重要特性&#xff0c;它旨在简化应用程序的开发和部署过程。自动配置通过基于类路径中的依赖关系和配置文件内容来预先配置Spring应用程序的各种组件和功能。这样&#xff0c;我们可以在无需显式配置大量参数的情况下&…

C语言 —— 初步入门知识(第一个C语言程序、数据类型、变量常量、字符与注释)

本篇文章介绍C语言的基础知识&#xff0c;使读者对C语言能够有一个大概的认识. 不会细写每一个知识点, 但是能够入门C语言, 进行初步的C语言代码阅读. 首先, 什么是语言? 对于人和人之间进行交流的语言, 我们知道, 可以通过汉语, 英语, 日语等语言进行交流. 那么对于人和计算…

sqlserver @@ROWCOUNT的使用

T-SQL是一种用于与关系型数据库&#xff08;如Microsoft SQL Server&#xff09;交互的SQL&#xff08;Structured Query Language&#xff09;方言。 在T-SQL中&#xff0c;ROWCOUNT是一个系统变量&#xff0c;它返回最后执行的语句影响的行数。你提供的代码检查ROWCOUNT的值…

pycharm终端激活环境时报错

pycharm终端激活环境时报错 nvoke-Expression : 无法将参数绑定到参数“Command”&#xff0c;因为该参数为空字符串。 所在位置 E:\anaconda\anaconda\anaconda3\envs\wsbpytorch\shell\condabin\Conda.psm1:76 字符: 36 Invoke-Expression -Command $activateCommand;~~~~~~~…

QProcess同步运行

https://www.cnblogs.com/xiaqiuchu/p/16724571.html adb 截图和下载2条命令需要同步等待&#xff0c;不然会报错adb仍然在运行。 waitForStarted()&#xff0c;waitForFinished() 两个都要写&#xff0c;不然下面语句仍然会运行。 void MainWindow::capture() {QString co…