1.判断某个数是不是回文数:
设n是一任意自然数,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如1234321即是回文数。
<span style="font-size:18px;">package cn.edu.hpu;
public class 判断回文数 {
public static void main(String[] args) {
huiWen(1234321);
huiWen(345);
}
/**
* 判断是不是回文数的方法
* @param num 要判断的数
*/
public static void huiWen(int num) {
// 先把要判断的数num转换为字符串
String temp = String.valueOf(num);
// 然后再把此字符串放到StringBuffer中
StringBuffer sb = new StringBuffer(temp);
// reverse()方法用于将字符串反转,判断反转后的字符串和原来的是否相同
boolean equals = sb.reverse().toString().equals(temp);
if (equals) {
System.out.println(num + "是回文数");
}else {
System.out.println(num + "不是回文数");
}
}
}
</span>
2.小球下落问题:
一球从100米高度自由落下,每次落地后反跳回原高度的一半, 再落下。求它在第10次落地时,共经过多少米? 第10次反弹多高?
<span style="font-size:18px;">package cn.edu.hpu;
/*
* 思路:
* 1,小球反复弹起,所以要用到循环
* 2,小球从弹起到落下是一个过程,所以从100米落下的高度应作为初始值
* 3,小球弹起和落下的路程是相同的,所以一个过程的高度是弹起高度的2倍
*/
public class Demo03 {
public static void main(String[] args) {
double height = 100; //下落的高度
//第10次落地时,共经过的米数,把第一次下落的高度作为初始数
double total = 100;
for (int i = 1; i <= 10; i++) {
height -= height/2;
total += height*2; //弹起和下落要经过相同的高度,所以要乘以2
}
System.out.println(height);
System.out.println(total);
}
}</span>
3.打印三角形问题:
根据控制台输入行数打印图形,例如输入5显示下面图形
*********
*******
*****
***
*
<span style="font-size:18px;">package cn.edu.hpu;
/*
思路:
1,此图形可看做是两个三角形的组合,前面是一个由空格组成的三角形,后面一个是由*组成的
2,有多行多列,要用for嵌套循环来实现,外层控制行数,内层控制每行的个数
3,通过二元一次方程组,算出行号i和每行*数k之间的关系:k = -2*i+11
*/
public class Demo04 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i-1; j++) {
System.out.print(" "); //打印前面的空格
}
for (int k = 1; k <= -2*i+11 ; k++) {
System.out.print("*"); //打印后面的*
}
System.out.println(); //换行
}
}
}</span>
4.判断某个数是不是完数(完全数):
如果一个数恰好等于它的因子之和,则称该数为"完全数"。因子就是所有可以整除这个数的数,不包括这个数自身.例如6=1+2+3。
编程找出1000以内的所有完数。
<span style="font-size:18px;">package cn.edu.hpu;
/*
* 思路:
* 1,需要使用for嵌套循环,外层循环控制范围
* 2,内层循环找出某个数的所有因子(因子不包括这个数本身)
*/
public class Demo09 {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
int sum = 0; //因子之和
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.println(i);
}
}
}
}</span>
5.白钱百鸡问题:
今有百钱,要买百鸡,百钱买百鸡, 公鸡一只5钱,母鸡一只3钱,小鸡1钱3只.
问:公鸡,母鸡,小鸡各买多少只?
<span style="font-size:18px;">package cn.hput;
public class test {
public static void main(String[] args) {
/*
* 思路:
* 1,全部买公鸡,最多买20只;全部买母鸡,最多买33只;全部买小鸡,最多买300只。
* 2,使用for嵌套循环
*/
for (int i = 0; i <= 20; i++) {
for (int j = 0; j <= 33; j++) {
for (int k = 0; k <= 300; k++) {
if (i + j + k == 100 && 5 * i + 3 * j + 1 / 3 == 100
&& k % 3 == 0) {
System.out.println("可买公鸡" + i + "只;母鸡" + j + "只;小鸡" + k
+ "只");
}
}
}
}
}
}</span><span style="font-size: 14px;">
</span>