UVa 1587 - Digit Generator

A+A的每一位的数字的和=B

问你每一个B对应 的最小的A 是多少

不然输出0;

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 using namespace std;
 5 const int N=100005;
 6 int ans[2*N],tmp,cnt,n,t;
 7 void fuc(){
 8     memset(ans,0,sizeof(ans));
 9     for(int i=1;i<=N;i++){
10         tmp=i; cnt=0;
11         while(tmp>0){
12             cnt+=tmp%10;
13             tmp/=10;
14         }
15         cnt+=i;
16         if(ans[cnt]==0) ans[cnt]=i;
17     }
18 }
19 int main()
20 {
21     fuc();
22     scanf("%d",&t);
23     while(t--){
24         scanf("%d",&n);
25         printf("%d\n",ans[n]);
26     }
27 } 
时间: 2024-11-04 04:36:08

UVa 1587 - Digit Generator的相关文章

UVa 1583 Digit Generator(数)

For a positive integer N , the digit-sum of N is defined as the sum of N itself and its digits. When M is the digitsum of N , we call N a generator of M . For example, the digit-sum of 245 is 256 (= 245 + 2 + 4 + 5). Therefore, 245 is a generator of 

UVa 1583 Digit Generator(数学)

 题意 如果a加上a所有数位上的数等于b时 a称为b的generator  求给定数的最小generator 给的数n是小于100,000的  考虑到所有数位和最大的数99,999的数位和也才45  因此我们只需要从n-45到n枚举就行了 #include<cstdio> #include<cstring> using namespace std; int t, n, a, b, ans, l; int main() { scanf ("%d", &

UVa 1583 Digit Generator WA

#include<stdio.h> int main() { long int n,i,s=0; while(scanf("%d",&n)!=EOF) { int flag=0; for(i=n-46;i<=n;i++) { s=i%10+i/10%10+i/100%10+i/1000%10+i/10000%10; if(s+i==n) { flag=1; break; } } if(flag) printf("%ld\n",i); els

uva 1583 Digit Generator(Uva-1583)

题目不再写入了,vj:https://vjudge.net/problem/UVA-1583#author=0 主要讲的是找一个数的小于它的一个数,小于它的那个数每一位加起来再加上那个数就会等于原来的数.没有就是0. 这个题实际上感觉也直接暴力for就行.数最大是1e5.那么最多5个9那么就是45,直接用stringstream或者其他的方法进行分位然后寻找就行. 找到就break那么这个数就是最小的. 刘汝佳的做法是直接预处理一个数组然后根据数组找数,实在是感觉非常的高明,同时代码量也比较小.

uva 1583 B - Digit Generator (暴力)

B - Digit Generator Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description For a positive integer N<tex2html_verbatim_mark> , the digit-sum of N<tex2html_verbatim_mark> is defined as the sum of N&l

Problem 005——Digit Generator

1583 - Digit Generator For a positive integer N , the digit-sum of N is defined as the sum of N itself and its digits. When M is the digitsum of N , we call N a generator of M . For example, the digit-sum of 245 is 256 (= 245 + 2 + 4 + 5). Therefore,

UVa 1225 Digit Counting --- 水题

UVa 1225 题目大意:把前n(n<=10000)个整数顺次写在一起,12345678910111213...,数一数0-9各出现多少字 解题思路:用一个cnt数组记录0-9这10个数字出现的次数,先将cnt初始化为0,接着让i从1枚举到n, 对每个i,处理以活的i的每一个位置上的数,并在相应的cnt下标上+1 最后输出cnt数组即可 /* UVa 1225 Digit Counting --- 水题 */ #include <cstdio> #include <cstring

uva 1587 Box(思路)

给6个矩形的长和宽(或者宽和长),问这六个矩形能否组成一个长方体. 思路比较简单,不过需要注意的地方有点多. 首先由于长和宽的顺序为止,所以要处理一下(一开始只处理了后来读入的五组,没有处理单独读入的第一组,差评) 然后要判断能否分成两两相同的三组. 如果能,枚举8种可能的相等的情况. 1 /************************************************************************* 2 > File Name: code/uva/1587.

UVa 10533 - Digit Primes

题目:输出给定区间中,本身是素数,并且这个数的各位之和也是素数的数(称为位素数)的个数. 分析:数论.首先利用筛法,求出1000000内的所有的素数:然后在利用生成的素数表, 判断每个数是不是各位之和也是素数:再后求出从0开始到任意区间中包含位素数数的个数: 最后输出两个区间之差就是区间中的位素数的个数. 说明:达标法计算,查询输出. #include <iostream> #include <cstdlib> #include <cstring> #include &