java基础题目
1.计算1000以内所有不能被7整除的整数之和
//计算1000以内所有不能被7整除的整数之和
public class Homework01{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i <= 1000; i++){
if(i % 7 != 0) {
sum += i;
}
}
System.out.println("1000以内所有不能被7整除的整数之和:" + sum); //429429
}
}
2.计算1+2-3+4-5+6-7…+100的结果
//计算1+2-3+4-5+6-7.....+100的结果
public class Homework02{
public static void main(String[] args){
int sum = 1;
for(int i = 2; i <= 100; i++){
if(i % 2 == 0){ //偶数
sum += i;
}else{ //奇数
sum -= i;
}
}
System.out.println(sum); //52
}
}
3.从控制台输入一个正整数,计算该数的阶乘。即5!=5x4x3x2x1
//从控制台输入一个正整数,计算该数的阶乘。即5!=5*4*3*2*1
public class Homework03{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = s.nextInt();
int sum=1;
for(int i=num; i > 1; i--){
sum *= i;
}
System.out.println(num + "! = " + sum);
}
}
4.从控制台接收一个正整数,判断该数字是否为质数
/*
质数(指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)
*/
//方法一
public class Homework04{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = s.nextInt();
//准备一个布尔类型的标记
boolean zhiShu = true; //true表示是质数
for(int i = 2; i < num; i++) {
if(num % i == 0){
zhiShu = false;
break;
}
}
System.out.println(num + (zhiShu ? "是":"不是") + "质数");
}
}
//方法二
public class H04{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = s.nextInt();
System.out.println(num+(Judge(num)?"是":"不是")+"质数");
}
public static Boolean Judge(int num){
for(int i=num-1; i > 1 ; i--){
if(num%i == 0){
return false;
}
}
return true;
}
}
5.从键盘接收一个正整数为行数,输出以下图形
/*
从键盘接收一个正整数,该正整数作为行数,输出以下图形
*
***
*****
*******
*********
例如:输入5,则打印上图5行
*/
public class Homework05{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数作为行数:");
int num = s.nextInt();
for(int i = 1; i <= num; i++){ // 行数
//System.out.println(i);
for(int n = 0; n < num-i; n++){ // *前面的空格
System.out.print(" ");
}
for(int j = 1; j < i*2; j++){ // *数量
System.out.print("*");
}
System.out.println();
}
}
}
6.存钱问题
/*
小芳的妈妈每天给她2.5元,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数;
她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱
*/
public class Homework06{
public static void main(String[] args){
int day = 0;
double money = 0.0;
while(money < 100){
day++;
money += 2.5;
if(day % 5 ==0){
money -= 6.0;
}
}
System.out.println("小芳通过"+day+"天存到了"+money+"钱"); //小芳通过74天存到了101.0钱
}
}
7.判断是否是完数
/*
一个数如果恰好等于它的因子之和,这个数就是完数,例如6=1+2+3,
编程找出1000内所有的完数.(1不是完数)
10 % 1 == 0;
10 % 2 == 0;
10 % 5 == 0;
10的因子:1+2+5=8
*/
public class Homework07{
public static void main(String[] args){
System.out.print("1000内所有的完数:");
for(int i = 2; i <= 1000; i++){
int sum = 0;
for(int j = 1; j <= i/2; j++){ //设i=6;j取1 2 3 4 5;但实际只要取到3就行了
if(i % j == 0){ //此时j就是因子
sum += j;
}
}
if(i == sum){
System.out.print(" "+i); // 6 28 496
}
}
}
}