/*假设我们当前要求的是100以内各位数之和和等于s的数有多少个,可以想到就是10以内各位数之和等于s的数的个数再加上10到100内的各位数之和等于s的个数.令dp[i][j]就代表10的j次方内各位数之和等于i的数的个数,那么dp[i][j] = dp[i][j - 1] + (10的j-1次方到10的j次方内各位数之和等于i的数的个数).那么后边这一部分怎么求呢?我们可以把j位数拆成j-1位数再加一位,要想让各位数之和等于i,那么加的这一位数只能是1到9中的任意一个数(不能是0的原因不用说了…
计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 解题分析: 题目要就就是找出 0≤ x < 10n中各位数字都不相同的数的个数.要接触这道题只需要理解: 1.设f(n)表示n为数字中各位都不相同的个数,则有countNumbersWithUniqueDigits(n)=…
357. 计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. PS: dp[i]=dp[i-1]+(dp[i-1]-dp[i-2])*(10-(i-1)); 加上dp[i-1]没什么可说的,加上之前的数字 dp[i-1]-dp[i-2]的意思是我们上一次较上上一次多出来的各位…
题目链接 357. 计算各个位数不同的数字个数 题意: 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字. 思路 法1:DFS+回溯 前导0单独处理,其余位置按0~9顺序每次插入,用一个数组vis[10]记录已经用过的数字 法2:数学 设f[i]表示i位数的有效数字,比如f[1]=10,f[2]=9*9…
/**  * 找出四位数的全部吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,能够由一对数字相乘而得到,而这对数字各包括乘积的一半位数的数字,当中从最初的数字中选取的数字能够随意排序.  * 以两个0结尾的数字是不同意的.  *   比例如以下列数字都是吸血鬼数字 1260=21*60 1827=21*87  2187=27*81  ...  * 比較笨的低效率的做法: 遍历全部四位数, 每生成一个四位数的时候,  *         在双重循环遍历两位数,在两位数的内层循环中推断是否与最外层…
/**  * 找出四位数的所有吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.  * 以两个0结尾的数字是不允许的.  *   例如下列数字都是吸血鬼数字 1260=21*60 1827=21*87  2187=27*81  ...  * 比较笨的低效率的做法: 遍历所有四位数, 每生成一个四位数的时候,  *         在双重循环遍历两位数,在两位数的内层循环中判断是否与最外层循环…
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方. public class Algorithm_Game_03 { public static void main(String[] args) { for(int i = 100 ; i < 999 ; i++){ if(i==(i/100)*(i/10…
当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位.但需要得到一个更大位数的pi值时,就得考虑其他的算法. 我们采用这个公式计算pi: pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+...... 在计算上述公式的个分式值时,由于1/3这类的分数是无限循环小数,而使用单变量时,由于变量能表示的范围有限,因此,多余…
package com.zuoye.test;//打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,//其各位数字立方和等于该数本身.//例如:153是一个 "水仙花数 ",//因为153=1的三次方+5的三次方+3的三次方.public class Shuixian { public static void main(String[] args) { int a; int b; int c; int sum1=0; int su…
给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数. 示例 1: 输入:nums = [12,345,2,6,7896] 输出:2 解释: 12 是 2 位数字(位数为偶数)  345 是 3 位数字(位数为奇数)   2 是 1 位数字(位数为奇数)  6 是 1 位数字 位数为奇数)  7896 是 4 位数字(位数为偶数)   因此只有 12 和 7896 是位数为偶数的数字 示例 2: 输入:nums = [555,901,482,1771] 输出:1 解释: 只有 17…