Java基础学习2019.5.12(顺序、循环)
1、利用Java编写九九乘法表
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+" ");
System.out.println("\n");
}
}
}
2、(人口估算)美国人口调查局基于以下假设进行人口估算:
每七秒有一个人诞生
没13秒有一个人死亡
每45秒有一个移民迁入
编写一个程序,显示未来五年的人口数。假设当前的人口是312 032 486,每年有365天
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int bornEveHour = 60*60/7; //每小时出生的人数
int deathEveHour = 60*60/13; //每小时死亡的人数
int migrateEveHour = 60*60/45;//每小时迁移入境的人数
int changePopulationEveryDay = bornEveHour + migrateEveHour + deathEveHour;//一天内变化的人数
int changePopulationEveryYear = changePopulationEveryDay *365;
System.out.print("5年后的人口数为:" + 312032486+(5*changePopulationEveryYear));
}
}
3、实例学习:利用Java获得当前的北京时间
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
long tatalMilliseconds = System.currentTimeMillis(); // 获得现在的豪秒数,格林尼治时间
long tatalSeconds = tatalMilliseconds/1000; //获得现在的总秒数
long Seconds = tatalSeconds%60; //获得现在的秒数
long tatalMinutes = tatalSeconds/60; //获得现在得总分钟数
long Minutes = tatalMinutes %60; //获得现在得分钟数
long tatalHour = tatalMinutes /60; //获得现在的总小时
long Hour = tatalHour%24+8; //获得 现在的北京时间,北京为东八区加8个小时
System.out.print("现在是北京时间"+Hour+"时"+Minutes+"分"+Seconds+"秒");
}
}
4、位运算应用-加密
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char a1='北',a2='京',a3='你',a4='好';
char secret='0';
a1=(char)(a1^secret); //21512 ^ 54
//(101010000001000 ^ 110110)
a2=(char)(a2^secret); //32933
a3=(char)(a3^secret); //24037
a4=(char)(a4^secret); //22823
System.out.println("密文:"+a1+a2+a3+a4);
a1=(char)(a1^secret);
a2=(char)(a2^secret);
a3=(char)(a3^secret);
a4=(char)(a4^secret);
System.out.println("原文:"+a1+a2+a3+a4);
}
}
密文:匧亜佐奍
原文:北京你好
5、10的阶乘
//while循环
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1,result=1;
while(i<=10)
{
result*=i;
i++;
}
System.out.print(result);
}
}
//do-while循环
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1,result=1;
do {
result*=i;
i++;
}
while(i<=10);
System.out.print(result);
}
}
//for循环
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
long result;
for (n=10,result=1; n>0; n--)
result*=n;
System.out.println("10!= " + result);
}
}
6、求满足 1 +2! + 3! + 4! + 5! + 6 !+ … +n! <= 9999
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
double sum =0 ; int i=1,g=1;
while(sum<9999)
{
g*=i;
sum+=g;
i++;
}
System.out.print(i);
}
}
7、假如有一条绳子长3000米,每天减去一半,请问需要花费几天时间,绳子的长度会短于5米?
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a =3000;int i=1;
while(a>5)
{
a=a/2.0;
i++;
}
System.out.print("需要的天数为:"+i);
}
}
8、演示二分查找
import java.util.*;
public class test_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] a={12,34,9,23,45,6,45,90,123,19,34};
Arrays.sort(a); //排序
System.out.println(Arrays.toString(a)); //打印数据,如果直接system.out.println(a)则打印数组的首地址
int number=45; //查找
int index=Arrays.binarySearch(a,number);
if(index>=0){
System.out.println(number+"和数组中索引为"+index+"的元素值相同");
}
else{
System.out.println(number+"不与数组中任何元素值相同");
}
}
}