UVa1583生成元(Digit Generator)

2023-12-03 18:52

本文主要是介绍UVa1583生成元(Digit Generator),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

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

输入输出样例

输入

3
216
121
2005

输出 

198
0
1979

思路

       要想解决这个题目,只需要对每一个输入的值从1开始遍历找到小于它自身的生成元取最小的即可,但是这样的话每一个输入都需要枚举一次,效率太低。更好的方法是我们一次性把1到100000内的所有正整数的最小生成元都求出来,然后对于每一个输入,直接查表即可。 

代码

#include<stdio.h>
#include<string.h>
#define maxn 100005//大小比较大的数组定义在主函数外面,防止出现异常
int ans[maxn];
int main(){int T,n;memset(ans,0,sizeof(ans));//将数组每一个的值初始化为0 int m=1;for(m=1;m<maxn;m++){//计算1到100000内的所有整数的最小生成元 int x=m,y=m;while(x>0){y+=x%10;x/=10;}if(ans[y]==0||m<ans[y]){//如果当前数的生成元还没有计算,或者后面计算出来的生成元比目前的生成元小,那么改为当前值 ans[y]=m;}}//接下来对于各种输入,直接查表即可 scanf("%d",&T);while(T--){scanf("%d",&n);printf("%d\n",ans[n]);}return 0;
} 

   这个题目的重点就是打表法的使用。

这篇关于UVa1583生成元(Digit Generator)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/450502

相关文章

利用Mybatis-generator工具自动生成代码

配置JAVA环境变量; 执行生成代码之前,我们须要做的准备工作。  1、新建一个文件夹,作为我们的工作空间,例如:  D:\generator  注意:这里的路径不要带有中文字符,这是规范,即使带有中文字符不会出什么问题。  2、在 generator 这路径下  (1)放置 mybatis-generator-core-1.3.2.jar;  (2)放置 mysql-connector-ja

Mybatis 逆向生成工具mybatis-generator-core-1.3.2.jar的使用

mybatis-generator-core-1.3.2.jar用来生成我们的项目代码,今天分享一下,这个工具,神器之处,在于不仅仅生成dao,mapper还有service层,web层都可以根据数据库反射生成出来。上图 如图,使用mybatis,无非就用××××EntitySqlProvider或××××EntityMapper.xml两种形式书写sql语句,生成方法本文均提供 展开图

使用Mybatis Generator插件生成纯净代码,自定义扩展注释和注释,xml映射文件,不用修改源码!!!

先看效果: (基于Mybatis-generator-core-1.4.0) 生成模型(实体): 根据MySQL库中的tb_prod_info表字段及注释自动生成. package com.ezsyn.cloudstudy.product.dao.entity;import io.swagger.annotations.ApiModelProperty;import lombok.Gette

MyBatis Generator myeclipse 生成 mybatis

在下载好的插件包解压,找到generator-master\eclipse\UpdateSite目录下的feauresj和plugins放在myeclipse的相应目录下

mybatis-plus使用+generator逆向工程

MyBatis-Plus (opens new window) (简称 MP)是一个  MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官网地址:  简介 | MyBatis-Plus 用idea开发的建议安装一个mybatisx的插件,可以实现xml和dao层之间的跳转以及天生自带generat

java 一个通用的Generator——批量创建类

下 面的程序可以为任何类构造一个Generator,只要该类具有默认的构造函数。为了减少类型声明,他提供了一个泛型方法,用以生成BasicGenerator: public interface Generator<T> {T next();} public class BasicGenerator<T> implements Generator<T> {private Class<T

Kaggle竞赛——手写数字识别(Digit Recognizer)

目录 1. 数据集介绍2. 数据分析3. 数据处理与封装3.1 数据集划分3.2 将数据转为tensor张量3.3 数据封装 4. 模型训练4.1 定义功能函数4.1 resnet18模型4.3 CNN模型4.4 FCNN模型 5. 结果分析5.1 混淆矩阵5.2 查看错误分类的样本 6. 加载最佳模型7. 参考文献 本次手写数字识别使用了resnet18(比resnet50精度更

mybatis-generator生成相对应的po、dao以及mapper

1、下载mybatis-generator相应的jar包文件,可以进入http://search.maven.org/#search找到不同版本的jar包; 2、进入http://mybatis.github.io/generator/configreference/xmlconfig.html官方网站查看官方文档,选择你相应的方式来生成po、dao、mapper文件,本来选择的是配置文件+ja

leetcode 902. Numbers At Most N Given Digit Set

题目链接 Given an array of digits which is sorted in non-decreasing order. You can write numbers using each digits[i] as many times as we want. For example, if digits = ['1','3','5'], we may write number

JAVA:使用Generator生成器实现代码生成的技术指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 在软件开发中,尤其是企业应用开发中,重复编写CRUD代码(创建、读取、更新、删除)是一项耗时且容易出错的任务。为了提高开发效率,许多开发者会使用代码生成器来自动生成这些重复的代码。本文将介绍如何使用Renren-Generator代码生成器来实现这一目标。 2、准备工作 在开始使用Renren-Gen