Java50道经典习题-程序13 根据条件求数字

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析:完全平方数:如果一个数能是由两个相同的数相乘的结果,那么这个数就是完全平方数,例如:9==3*3;9就是完全平方数。在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

 1 public class Prog13 {
 2     public static void main(String[] args) {
 3         int n=0;
 4         for(int i=0;i<100001;i++) {
 5             if(isCompSqrt(i+100)&&isCompSqrt(i+268)) {
 6                 n=i;
 7                 break;
 8             }
 9         }
10         System.out.println("所求的数是:"+n);
11     }
12     //判断完全平方数
13     private static boolean isCompSqrt(int n) {
14         boolean isCompSqrt=false;
15         for(int i=1;i<Math.sqrt(n)+1;i++) {
16             if(n==Math.pow(i, 2)) {
17                 isCompSqrt=true;
18                 break;
19             }
20         }
21         return isCompSqrt;
22     }
23 }
24 /*运行结果
25 所求的数是:21
26 */

原文地址:https://www.cnblogs.com/parkour1026/p/10796832.html

时间: 2024-10-25 01:47:32

Java50道经典习题-程序13 根据条件求数字的相关文章

JAVA 基础编程练习题13 【程序 13 根据条件求数字】

13 [程序 13 根据条件求数字] 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后的结 果满足如下条件,即是结果. package cskaoyan; public class cskaoyan13 { @org.junit.Test public void number() { int min = 1; int max = 10

Java50道经典习题-程序18 乒乓球赛

题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析:如果是人经过逻辑推理可以很快的得到结论.但是计算机处理此问题,不可能立即得出结论,而必须对每一种组合一一验证,找出符合条件的组合. 假设甲队a,b,c的对手分别是i,j,k i,j,k互不相等并且分别都是乙队x,y,z中的一人 利用三重for循环保证i,j,k互不相等 再将题设条件“a说他不和x比,

Java50道经典习题-程序11 求不重复数字

题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 1 public class Prog11 { 2 public static void main(String[] args) { 3 int count=0; 4 int n=0; 5 for(int i=1;i<5;i++) { 6 for(int j=1;j<5;j++) { 7 if(i==j) 8 con

Java50道经典习题-程序8 输入数字求和

题目:求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的值:");

Java50道经典习题-程序12 计算奖金

题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:    20万到40万之间时,高于20万元的部分,可提成5%:    40万到60万之间时高于40万元的部分,可提成3%:    60万到100万之间时,高于60万元的部分,可提成1.5%,    高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 分析:请利用数轴来

Java50道经典习题-程序10 自由落体

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 1 import java.util.Scanner; 2 public class Prog10 { 3 public static void main(String[] args) { 4 System.out.println("请输入小球落地时的高度和求解的次数:"); 5 Scanner scan=new Scanner(System.in); 6

Java50道经典习题-程序22 递归求阶乘

题目:利用递归方法求5!.分析:递归公式:n*factorial(n-1); 1 public class Prog22 { 2 public static void main(String[] args) { 3 System.out.println(factorial(5)); 4 } 5 //递归求阶乘 6 public static long factorial(int n) { 7 if(n==0||n==1) { 8 return 1L; 9 } 10 return n*factor

Java50道经典习题-程序9 求完数

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 1 public class Prog9 { 2 public static void main(String[] args) { 3 int n=1000; 4 compNumber(n); 5 } 6 //求完数 7 private static void compNumber(int n) { 8 System.out.println(n+"以内的完数:&q

Java50道经典习题-程序20 求前20项之和

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.分析:请抓住分子与分母的变化规律.三个连续分数之间的规律是:上两个分子之和等于第三个分数的分子,上两个分母之和等于第三个分数的分母 1 public class Prog20{ 2 public static void main(String[] args){ 3 double n1 = 1; 4 double n2 = 1; 5 double fraction = n1/n2; 6 dou