UVA - 10162 Last Digit】的更多相关文章

Description  Problem B.Last Digit  Background Give you a integer number N (1<=n<=2*10100). Pleasecompute S=11+22+33+-+NN   Give the last digit of S to me. Input Input file consists of several Ns, each N a line. It is ended with N=0. Output For each…
UVA 10162 - Last Digit 题目链接 题意:求S=(11+22+...NN)%10 思路:打出0-9的每一个周期,发现周期为1或2或4.所以S是以20一个周期,打出表后发现20为4.所以相应的40为8.60为2,80为6.100为0,100为1个周期,且为0,所以先把数字mod上100,然后在mod 20求出相应位置. 代码: #include <stdio.h> #include <string.h> const int Z2[10] = {0, 4, 8, 2…
题 题意 a加上 a的各位数=b,则b是a的digitSum,a是b的generator,现在给你digitSum,让你求它的最小的generator. 分析 一种方法是: 预处理打表,也就是把1到100000的digitSum求出来,对每个digitSum保存最小的generator. 另一种方法是: 对digitSum-45到digitSum-1的数求它的digitSum,最先算到给定的digitSum的就是最小的generator. 因为最多6位数,每位上的数最大是9,最多5个9,所以a的…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] for (int i = 1;i <= n;i++) { 算出i是哪一个的生成元. 假设是y. 则ans[y] = min(ans[y],i); } [错的次数] 在这里输入错的次数 [反思] 在这里输入反思 [代码] #include <bits/stdc++.h> using namespace std; const int N = 1e5; int ans[N + 10]; int main() { for (in…
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 1583 题目大意:如果x加上x的各个数字之和得到y,那么称x是y的生成元. 给定数字n,求它的最小生成元 解题思路:可以利用打表的方法,提前计算出以i为生成元的数,设为d,并保存在a[d]中(a[d]=i),反复枚举,若是初次遇到或遇到更小的则更新 相关说明:本来按书上来,在更新数组a时,if里是有或上 i < a[y]这个条件的, 但观察到由于i是从小到大枚举的,因此只会更新一次,即第一次填进去的就是最小生成元,因此去掉仍然AC /* UVa 1583 Digit Generator…
​ Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequence of consecutive integers starting with 1 to N (1 < N < 10000). After that, he counts the number of times each digit (0 to 9) appears in the seque…
思路: 利用java 特性,将数字从1 一直加到n,全部放到String中,然后依次对strring扫描每一位,使其carr[str.charAt(i)-'0']++; 最后输出carr[i],即可. 13 string=12345678910111213 carr[1]++.carr[2]++.carr[3]++....carr[1]++.carr[1]++.carr[1]++.carr[2]++.carr[1]++.carr[3]++ AC Code: import java.util.Sc…
生成元:如果 x 加上 x 各个数字之和得到y,则说x是y的生成元. n(1<=n<=100000),求最小生成元,无解输出0. 例如:n=216 , 解是:198 198+1+9+8=216 解题思路:打表 循环将从1到10005(大点也可以)进行提前写好. 例如: 1  1+1=2,-->  arr[2]=1 13 13+1+3=17,-->arr[17]=13 34  34+3+4=41, -->arr[41]=34 打完表后,直接将给的数作为下标,输出即可. #inc…
题意:给出n,将前n个整数顺次写在一起,统计各个数字出现的次数. 用的最笨的办法--直接统计-- 后来发现网上的题解有先打表来做的 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; ]; int main() { int ncase,n,i; scanf("%d",&ncase); wh…