C++生成元
生成元
对于正整数N,N的数字总和定义为N本身及其数字的总和。当M 是N的数字总和,我们称N为M的生成元。 例如,245的数字总和为256(= 245 + 2 + 4 + 5)。因此,245是 256。 毫不奇怪,有些数字没有任何生成元,有些数字有多个生成元。例如,216的生成器是198和207。 您将编写一个程序来查找给定整数的最小生成元。 输入值 您的程序将从标准输入中读取。输入包含T个测试用例。测试次数 情况T在输入的第一行中给出。每个测试用例需要一行包含整数N的行, 1≤N≤100,000。 输出量 您的程序将写入标准输出。每个测试用例仅打印一行。该行是 每个测试用例包含一个N的生成元。如果N具有多个生成器,则打印最小的生成器。如果N 没有任何生成器,请打印“0”。
思路:
可以先用一个数组把1到100000之间的每个数是生成元的数保存在相应的位置,如数组第216个数保存198。如果没有生成元的数就用0保存。
代码:
#include <iostream>
#include <string>
#define max 100005
using namespace std;
int main() {
int an[max]={};
for(int i=;i<max;++i)
{
int x=i,y=i;
while(x>)
{
y+=x%;
x/=;
}
if(an[y]==||i<an[y]) an[y]=i;
}
int n;
cin>>n;
for(int i=;i<n;++i)
{
int m;
cin>>m;
cout<<an[m]<<endl;
}
return ;
}
C++生成元的更多相关文章
- 生成元(Digit Generator ,ACM/ICPC Seoul 2005 ,UVa 1583)
生成元:如果 x 加上 x 各个数字之和得到y,则说x是y的生成元. n(1<=n<=100000),求最小生成元,无解输出0. 例如:n=216 , 解是:198 198+1+9+8=2 ...
- GF(2^8)生成元
目的是找出所有GF(2^8)的生成元. 方法很简单,从2开始遍历,将每个元素都与自身相乘255次,看是否能得到1~255.若能,则是生成元. #include<iostream> #inc ...
- hdu1222&hdu1014 循环群的生成元
hdu1222 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1222 题目大意: 大灰狼追小白兔.小白兔可以躲起来的洞绕成一个圈,大灰狼从0这个点出 ...
- [C++]最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
Question 例题3-5 最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583) 如果x+x的各个数字之和得到y,就是说x是y的生成元.给出n( ...
- 生成元(UVa1583)
题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1≤n≤100000),求最小 生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. [分析] 本题看 ...
- 3_5 生成元(UVa1583)
如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1<=n<=100000),求最小生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. 样 ...
- 数学--数论--HDU 2104 丢手绢(离散数学 mod N+ 剩余类 生成元)+(最大公约数)
The Children's Day has passed for some days .Has you remembered something happened at your childhood ...
- 生成元(JAVA语言)
package 第三章; import java.util.Scanner; public class 生成元 { public static void main(String[] args) { / ...
随机推荐
- adb连接多个设备时,选择某个设备
在emulator-5554模拟器上安装ebook.apk: adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk: adb -s HT9BYL ...
- APP自动化 -- swipe(滑动屏幕)
- sed在文本第一行和最后一行添加字符串
shell在文本第一行和最后一行添加字符串 sed -i '1 i\ApiInterfaceName ResposeTime' /tmp/apiLog/apiLogFromatSecond.logse ...
- Shell变量的作用域:Shell全局变量、环境变量和局部变量
Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他 ...
- yum下载软件包
方法一: downloadonly插件有一个yum的插件叫做downloadonly,就是只下载不安装的意思.1. 安装插件yum install yum-download2. 下载yum updat ...
- servlet执行
WEB编程阶段 在WEB编程中,我们可以通过浏览器访问WEB服务器上的资源.WEB服务器就是另一台计算机 浏览器的入口不同(访问路径),访问的资源也不同. 为了灵活实现的不同路径(/hello)执行不 ...
- 真香!Linux 原来是这么管理内存的
Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的. 基本 ...
- docker容器dns之resolv.conf
基础信息 操作系统:CentOS Linux release 7.2.1511 (Core) Docker版本:Server Version: 1.9.1 拉取基础镜像 Rhel:7.2 为直接从do ...
- Day02_CMS前端开发
CMS前端开发 1 Vue.js与Webpack研究 参考链接:https://www.cnblogs.com/artwalker/p/13387386.html 2 CMS前端工程创建 2.1 导入 ...
- maven 一些高级用法命令
发布本地jar到私服 命令 mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=D:\Downloads\OJDBC-Full\ojdbc6.ja ...