java例题_21 求 1+2!+3!+...+20!的和】的更多相关文章

1 /*21 [程序 21 求阶乘] 2 题目:求 1+2!+3!+...+20!的和 3 程序分析:此程序只是把累加变成了累乘. 4 */ 5 6 /*分析 7 * 1.汲取上一题的教训,这么大的数字,long类型 8 * 2.for循环,两层,一层控制1~20,另一层控制阶乘 9 * */ 10 11 package homework; 12 13 public class _21 { 14 15 public static void main(String[] args) { 16 //声…
1 /*43 [程序 43 求奇数个数] 2 题目:求 0-7 所能组成的奇数个数. 3 */ 4 5 /*分析 6 * 1.0不能作最高位且最低位只能是1,3,5,7; 7 * 2.没有限定是几位数,可以是一位,两位...七位 8 * 3.数字应该不能重复出现.否者有无数个 9 * */ 10 11 package homework; 12 13 public class _43 { 14 15 public static void main(String[] args) { 16 // 声明…
1 /*42 [程序 42 求数字] 2 题目:809*??=800*??+9*??+1 3 其中??代表的两位数,8*??的结果为两位数,9*??的结果为 3 位数.求??代表的两位数,及 809*??后的结果. 4 */ 5 6 /*分析 7 * 遍历所有的两位数,带入式子中, 8 * 再加上8*??为两位数,9*??为三位数的条件 9 * 得到??,再计算809*?? 10 * */ 11 12 package homework; 13 14 public class _42 { 15 1…
1 /*11 [程序 11 求不重复数字] 2 题目:有 1.2.3.4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 3 程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 4 */ 5 6 7 /*分析 8 * 根据提示,三个位子分别放入这个四个数字,可以用三重for循环,然后添加if条件排除掉有重复的组合,就可以得到所有的无重复三位数 9 * 另外,加一个count计数器,没有一个满足的数字就加1,就能得到有多少个 1…
1 /*6 [程序 6 求最大公约数及最小公倍数] 2 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 3 程序分析:利用辗除法. 4 */ 5 6 /*分析 7 * ============================= 8 * 辗转相除法求[最大公约数]: 9 * 如我们计算10和25的最大公约数.用辗转相除法是这么计算的: 10 * 25÷10=2······5 11 * 10÷5=2······0 12 * 那么25和10的最大公约数就是5. 13 * =======…
java中数组求最值,这在实际的开发中差点儿用不到,可是在面试中会偶尔被问到,这是考你主要的思维能力,如今说下这个题的基本思路 思路: 1:先定义一个变量,通常是用数组的第一个值 2:在循环中推断(从第二个角标到数组的length-1角标相应的值)是否大于这个之前定义的值,假设大于那么就把这个值赋值给max,直到比完就能够求出最大值 代码例如以下: public static void main(String[] args) { int[] arr = {1,3,5,6,9,7}; int ma…
Java描述表达式求值的两种解法:双栈结构和二叉树 原题大意:表达式求值 求一个非负整数四则混合运算且含嵌套括号表达式的值.如: # 输入: 1+2*(6/2)-4 # 输出: 3.0 数据保证: 保证表达式合法(含除数不为0). 保证运算数是非负整数. 双栈版 维护两个栈: 符号栈,数字栈,遍历输入串过程中计算 数字直接入栈 符号入栈 a. 符号栈为空 b. 当前符号优先于栈顶符号 c. 栈顶为'(' 符号出栈计算: 栈顶符号非'(' 且 优先级更高. class ExpStack { pri…
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1    输入: 一个byte型的数字    输出: 无     返回: 对应的二进制数字中1的最大连续数 package test; import java.util.Scanner; /* * 求最大连续bit数 * 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 * 输入: 一个byte型的数字 * 输出: 无 * 返回:…
面向对象第一单元总结:Java实现表达式求导 题目要求 输入一个表达式:包含x,x**2,sin(),cos(),等形式,对x求导并输出结果 例:\(x+x**2+-2*x**2*(sin(x**2+(cos(x**2))))\) 思路分析 表达式拆解 将一个表达式分为三级:表达式Polynomial.项Term.因子Unit 一个Poly由Term累加构成,一个Term由Unit累乘构成 解题思路 读入表达式字符串,将其分解成一个表达式类 对表达式类求导 输出导数表达式的字符串形式 字符串->…
Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近由学会了一些简单的函数求值.比如,它知道函数min(20, 23)的值是20, add(10, 98)的值是108等等.经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式. 假设表达式可以简单定义为: 1. 一个正的十进制数x是一个表达式. 2. 如果x和y是表达式,则函数min(x, y)也是表达式,其值为x,y中的最小数. 3. 如果x和y是表达式,则函数max(x, y)也是表达式,其值为x,y中的最大数. 4…
1 /*38 [程序 38 求字符串长度] 2 题目:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度. 3 */ 4 5 /*分析 6 * 1.从键盘得到一个字符串 7 * 2.新建一个函数,传入得到的字符串,函数返回值为字符串的长度 8 * 3.主函数输出字符串长度 9 * */ 10 11 package homework; 12 13 import java.util.Scanner; 14 15 public class _38 { 16 17 public…
4. 使用牛顿迭代法求方程的解:x^3-2x-5=0区间为[2,3]这里的"^"表示乘方. package chapter4; public class demo4 { public static void main(String[] args) { double x=2; for(int i=0;i<20;i++) { x=-f(x)/f1(x)+x; } System.out.println(x+""); } static double f(double…
4.输入x,编程试求函数 y=sin(x^2)/(1-cosx)的值. 这里的"^"表示乘方. package study; import java.util.Scanner; public class demo1 { public static void main(String[] args){ double x; double y; System.out.println("请输入x的值"); Scanner sc=new Scanner(System.in);…
1 /*23 [程序 23 求岁数] 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 3 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 2 个人,说比第一个人大两岁.最后问第一个人,他 4 说是 10 岁.请问第五个人多大? 5 */ 6 7 /*分析 8 *除第一个人外,每个人都比前面那个人大2岁,用递归算法 9 *x2=x1+2,x3=x2+2,x4=x3+2,x5=x4+2;x1=10 10 * */ 11 1…
1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的结果,称为递归的 8 * 根据提示,可以用算法x!=x*(x-1)!;y=x-1,y!=y*(y-1)!;... 9 * 10 * */ 11 12 13 package homework; 14 15 public class _22 { 16 17 public static void main…
1 /*20 [程序 20 求前 20 项之和] 2 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和. 3 程序分析:请抓住分子与分母的变化规律. 4 5 */ 6 7 /*分析 8 * 前一个数的分子就是后一个数的分母 9 * 无论分子分母,第三个的值都等于第一个加第二个 10 * 一 二 三 四 五.... 11 * 分子 2 3 5 8 13 12 * 分母 1 2 3 5 8 13 13 * =================…
4. package chapter3; import java.util.*; public class demo4 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int n=sc.nextInt(); int ans=a; int sum=a; for(int i=0;i<n-1;i++) { ans=ans*10+a; sum=sum+ans…
1 /*50 [程序 50 文件 IO] 2 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 3 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. 4 */ 5 6 /*分析 7 * 1.自定义类student,包括学号,姓名,科目1成绩,科目2成绩,科目3成绩,平均成绩 8 * public class 类名{ 9 *.数据类型 属性名称1: 10 *.数据类型 属性名称2: 11 * - 12 * }…
1 /*39 [程序 39 分数累加] 2 题目:编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+...+1/n,当输入 n 为奇数时,调用函数 3 1/1+1/3+...+1/n 4 */ 5 6 /*分析 7 * 1.主函数从键盘得到n,并判断奇偶性 8 * 2.调用对应函数,返回double类型 9 * 3.用for循环实现分数累加 10 * */ 11 12 package homework; 13 14 import java.util.Scanner; 15 16 pu…
1 /*29 [程序 29 求矩阵对角线之和] 2 题目:求一个 3*3 矩阵对角线元素之和 3 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. 4 */ 5 6 /*分析 7 * 1.从键盘得到一个二维数组 8 * 2.累加对角线元素 9 * */ 10 11 package homework; 12 13 import java.util.Scanner; 14 15 public class _29 { 16 17 public static void…
1 /*26 [程序 26 求星期] 2 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母. 3 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或 if 语句判断第二个字母. =====情况语句是啥? 4 */ 5 6 /*======================================= 7 * 星期一 Monday 8 * 星期二 Tuesday 9 * 星期三 Wednesday 10 * 星期四 Thursday…
1 /*25 [程序 25 求回文数] 2 题目:一个 5 位数,判断它是不是回文数.即 12321 是回文数,个位与万位相同,十位与千位相同. 3 */ 4 5 /*分析 6 * 先用%和/将5个数字分离,再组成一个新的5位数,如果这个新的5位数与原数相等,则输出yes,否者no 7 * */ 8 9 10 package homework; 11 12 import java.util.InputMismatchException; 13 import java.util.Scanner;…
1 /*24 [程序 24 根据输入求输出] 2 题目:给一个不多于 5 位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 3 */ 4 5 /*分析 6 * 首先从键盘得到一个正整数,不超过5位数用int; 7 * 用%和/将每个数字分离后存入数组,位数就是数组的角标+1,用for循环正向输出数组 8 * 分离时用while判断是否分离完成 9 * */ 10 11 package homework; 12 13 import java.util.InputMismatchExce…
1 /*15 [程序 15 排序] 2 题目:输入三个整数 x,y,z,请把这三个数由小到大输出. 3 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换, 4 然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小. 5 */ 6 7 /*分析 8 * 冒泡排序法 9 * */ 10 11 package homework; 12 13 import java.util.Scanner…
1 /*14 [程序 14 求日期] 2 题目:输入某年某月某日,判断这一天是这一年的第几天? 3 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天. 4 */ 5 6 /*分析: 7 * 1.得到键盘上的数字,并以"."间隔,分别将年月日存入year,month,day中 8 * 2.判断月份是几月,如果一月就直接访问日,如果2月就day+31,如果大于等于三月且小于等于8月,则31*mo…
1 /*13 [程序 13 根据条件求数字] 2 题目:一个整数,它加上 100 后是一个完全平方数,再加上 268 又是一个完全平方数,请问该数是多少? 3 程序分析:在 10万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后的结果满足如下条件,即是结果. 4 */ 5 6 //=============百度到开方的方法 7 //以下是java.lang.Math.sqrt()方法的声明 8 // public static double sqrt(doub…
1 /*12 [程序 12 计算奖金] 2 题目:企业发放的奖金根据利润提成. 3 利润I低于或等于 10 万元时,奖金可提 10%: 4 利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可提成 7.5%: 5 20 万到 40万之间时,高于 20 万元的部分,可提成 5%: 6 40 万到 60 万之间时高于 40 万元的部分,可提成 3%: 7 60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时…
1 /*8 [程序 8 输入数字求和] 2 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字.例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制. 3 程序分析:关键是计算出每一项的值. 4 */ 5 6 /*分析:输入一个数,用for循环将这个数递减可以实现几个数相加 7 * 8 * */ 9 10 11 12 package homework; 13 14 import java.util.Scanner; 15 1…
第一步,系统提示输入学员的人数. 第二步,逐一获取学员的分数,并累计. 第三步,求平均成绩,并输出. import java.util.Scanner; public class chengji { public static void main(String[] args) { Scanner s=new Scanner(System.in); System.out.println("请输入学员人数"); int renshu=s.nextInt(); int i=1; int su…
实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System.out.println("=======求学生最大成绩========="); Scanner in = new Scanner(System.in); int[] arr = new int[5]; //获取用户输入的每个学生的成绩 for(int i=0;i<arr.length…