Java自学记录Day19
本帖最后由 JXNU1999python 于 2021-12-7 07:49 编辑Java学习记录Day19
一、完成作业
1、计算1000以内所有不能被7整除的整数之和
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i<=1000){
if(i%7==0){
}else{
sum+=i;
}
i++;
}
System.out.println(sum);
}
2、计算 1+2-3+4-5+6-7....+100的结果
public class HomeworkFirst01 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i<=100){
System.out.println(i);
sum+=i;
i++;
}
System.out.println(sum);
}
}
3、从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1。
import java.util.Scanner;
public class Work03 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入一个正整数:");
int i=input.nextInt();
int num=1;
for(int j=1;j<=i;j++){
num*=j;
}
System.out.println(num);
}
}
4、从控制台接收一个正整数,判断该数字是否为质数
质数(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)
System.out.print("请输入一个正整数: ");
double i=input.nextDouble();
if(i>2){
double a=2;
for(;a<i;a++){
if(i%a==0){
System.out.println(i+"不是质数");
break;
}
}
if(a==i){
System.out.println(i+"是质数");
}
// System.out.print(i+"不是质数");
}else if(i==2){
System.out.println(i+"是质数");
}else if(i<1){
System.out.print("请再次输入一个正确正整数: ");
}else if((i<2)&&(i>1)){
System.out.print("请再次输入一个正确正整数: ");
}else if(i==1){
System.out.println(i+"不是质数");
}
5、从键盘接收一个正整数,该正整数作为行数,输出以下图形
*
***
*****
*******
*********
例如:输入5,则打印如上图5行。
6、小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天
或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
public static void main(String[] args) {
int time=1;
for(double money=2.5;money<100;money+=2.5){
if(time%5==0){
money-=6;
}
time++;
}
System.out.println(time);
}
7、一个数如果恰好等于它的因子之和,这个数就是完数,例如 6 = 1 + 2 + 3,编程
找出1000内所有的完数。
public static void main(String[] args) {
// 一个数如果恰好等于它的因子之和,这个数就是完数,例如 6 = 1 + 2 + 3,编程
//找出1000内所有的完数。
for(int i=1;i<=1000;i++){
int sum=0;
for(int j=1;j<i;j++){
if(i%j==0){
// System.out.println(j+"是"+i+"的因子");
sum+=j;
// System.out.println(sum);
}
}
if(sum==i){
System.out.println(i);
}else{
// System.out.println(i+"不是完数");
}
}
}
8、给一个不多于5位的正整数,
要求:
(1)、求它是几位数
(2)、逆序打印出各位数字????
import java.util.Scanner;
public class Work08 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
boolean num=true;
while(num){
System.out.print("请输入1-9999内的任意正整数:");
int i=input.nextInt();
double j=i/1000;
if((i>=0)&&(i<=9999)){
if(j>=1){
System.out.println(i+"是四位数。");
}else if(j<1){
double k=i/100;
if(k>=1){
System.out.println(i+"是三位数。");
}else if(k<1){
double a=i/10;
if(a>=1){
System.out.println(i+"是两位数。");
}else if(a<1){
System.out.println(i+"是一位数。");
}
}
}
}else{
System.out.println("\n");
}
}
}
}
二、问题
1、作业5的内循环应该怎么写?需要用多少层循环嵌套。类似于倒立三角形的习题。
2、修正第二题的错误。
public static void main(String[] args) {
int i = 2;
int sum = 1;
while(i<=100){
if(i%2==0){
sum+=i;
}else{
sum-=i;
}
i++;
}
System.out.println(sum);
}
加油,真的很棒,自学成才,才牛掰! 指正 第二题错了 你做成了累加题目是有正负号区别 第八题让我想起网上的88万行代码的switch加case 可以学一下java8的stream吧 加油呀,坚持不懈 看书自学 or 看视频自学啊?
页:
[1]