java50道经典习题-程序8输入数字求和(代码片段)

parkour1026 parkour1026     2022-12-02     496

关键词:

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 
分析:关键是计算出每一项的值。

 1 import java.util.Scanner;
 2 public class Prog8
 3     public static void main(String[] args)
 4         System.out.print("求s=a+aa+aaa+aaaa+...的值,请输入a的值:");
 5         Scanner scan1 = new Scanner(System.in);
 6         int a = scan1.nextInt();
 7         
 8         System.out.print("你想要几个数相加,请输入一个整数:");
 9         Scanner scan2 = new Scanner(System.in);//以空格作为分隔符
10         int n = scan2.nextInt();
11         scan1.close();//关闭扫描器
12         scan2.close();//关闭扫描器
13         System.out.println(expressed(a,n)+add(a,n));
14      
15     //求和表达式
16     private static String expressed(int a,int n)
17         StringBuffer sb = new StringBuffer();
18         StringBuffer subSB = new StringBuffer();
19         for(int i=1;i<n+1;i++)
20           subSB = subSB.append(a);//将int参数的字符串表示附加到此序列
21           sb = sb.append(subSB);//将int参数的字符串表示附加到此序列
22           if(i<n)
23             sb = sb.append("+");
24         
25         sb.append("=");
26         return sb.toString();
27     
28     //求和
29     private static long add(int a,int n)
30         long sum = 0;
31         long subSUM = 0;
32         for(int i=1;i<n+1;i++)
33             subSUM = subSUM*10+a;
34             sum = sum+subSUM;
35         
36         return sum;
37     
38 
39 /*运行结果
40 求s=a+aa+aaa+aaaa+...的值,请输入a的值:2
41 你想要几个数相加,请输入一个整数:5
42 2+22+222+2222+22222=24690
43 */

 

java50道经典习题-程序11求不重复数字(代码片段)

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。1publicclassProg112publicstaticvoidmain(String[]args... 查看详情

java50道经典习题-程序13根据条件求数字(代码片段)

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析:完全平方数:如果一个数能是由两个相同的数相乘的结果,那么这个数就是完全平方数,例如:9==3*3;9就是完全平方数... 查看详情

java50道经典习题-程序20求前20项之和(代码片段)

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。分析:请抓住分子与分母的变化规律。三个连续分数之间的规律是:上两个分子之和等于第三个分数的分子,上两个分母之和等于第三个分数的分... 查看详情

java50道经典习题-程序10自由落体(代码片段)

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1importjava.util.Scanner;2publicclassProg103publicstaticvoidmain(String[]args)4System.out.println("请输入小球落地时... 查看详情

java基础50道经典练习题(20)——求前20项之和

【程序20求前20项之和】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 程序分析:请抓住分子与分母的变化规律。 源码:packagecom.homework.test;/*【程序20求前20项之和】题目:有一分数序... 查看详情

java基础50道经典练习题(20)——求前20项之和

【程序20求前20项之和】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 程序分析:请抓住分子与分母的变化规律。 源码:packagecom.homework.test;/*【程序20求前20项之和】题目:有一分数序... 查看详情

java50道经典习题-程序21求阶乘(代码片段)

题目:求1+2!+3!+...+20!的和分析:使用递归求解0的阶乘和1的阶乘都为1publicclassProg21publicstaticvoidmain(String[]args)longsum=0L;for(inti=1;i<=20;i++)sum+=factorial(i);System.out.println(sum);//递归求阶乘publicstaticlongfa 查看详情

java50道经典习题-程序9求完数(代码片段)

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。1publicclassProg92publicstaticvoidmain(String[]args)3intn=1000;4compNumber(n);56//求完数7privatestaticvoidcompNumber(intn)8System.out.println(n 查看详情

java50道经典习题-程序22递归求阶乘(代码片段)

题目:利用递归方法求5!。分析:递归公式:n*factorial(n-1);1publicclassProg222publicstaticvoidmain(String[]args)3System.out.println(factorial(5));45//递归求阶乘6publicstaticlongfactorial(intn)7if(n==0||n==1)8return1L;910 查看详情

java50道经典习题-程序12计算奖金(代码片段)

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;   利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;   20万到40万之间时,高于20... 查看详情

java基础50道经典练习题(26)——求星期

【程序26求星期】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 ... 查看详情

java基础50道经典练习题(26)——求星期

【程序26求星期】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 ... 查看详情

java基础50道经典练习题题目——不死兔神

【程序1不死神兔】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,2... 查看详情

java基础50道经典练习题题目——不死兔神

【程序1不死神兔】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,2... 查看详情

java基础50道经典练习题(15)——排序

【程序15排序】题目:输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交... 查看详情

java基础50道经典练习题(15)——排序

【程序15排序】题目:输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交... 查看详情

java50道经典习题-程序18乒乓球赛(代码片段)

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。分析:如果是人经过逻辑推理可... 查看详情

java基础50道经典练习题——水仙花数

【程序3水仙花数】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个... 查看详情