(JAVA编程练习):“求完数”+“不重复的三位数”

简介: (JAVA编程练习):“求完数”+“不重复的三位数”

目录

前言:

1、完数

(1)题目:

(2)运行结果:

(3)代码:

a、关键处解析:

b、完整代码:

2、不重复的三位数:

(1)题目:

(2)运行结果:

(3)代码:

a、关键处解析:

b、完整代码:



前言:

打卡中!

哎!努力吧!要学的东西还有很多!


1、完数

(1)题目:

       一个数如果恰好等于它的因子之和,这个数就称为完数。列如:6=1+2+3。现在要求找出1000以内的完数。

(2)运行结果:


(3)代码:

a、关键处解析:

        for(i=1;i<1000;i++) //外循环
    {
      int sum=0; //每次计算之前初始化为零  
      for(j=1;j<=i/2;j++) //每个数最小的因子为2(1除外),所以只需要找一半故i/2
      {
        if(i%j==0) 
        {
          sum+=j; //寻找全部因子,然后加起来
        }
      }
      if(sum==i)
      {
        System.out.println(i); //判断正确,则是完数
      }
    }


b、完整代码:

public class exercise08 {
  public static void main(String[] args){
    int i,j;
    for(i=1;i<1000;i++)
    {
      int sum=0;
      for(j=1;j<=i/2;j++)
      {
        if(i%j==0)
        {
          sum+=j;
        }
      }
      if(sum==i)
      {
        System.out.println(i);
      }
    }
  }
}


2、不重复的三位数:

(1)题目:

有1、2、3、4四个数,能组成多少个互不相同且无重复数字的三位数?都是多少?


(2)运行结果:


(3)代码:

a、关键处解析:

//三个for循环代表三位数
for(int i=1;i<=4;i++)
    {
      for(int j=1;j<=4;j++)
      {
        for(int z=1;z<=4;z++)
        {
          if(i!=j && j!=z && z!=i) //如果三个数不相同,则打印
          {
            System.out.print(100*i+10*j+z+"\t");
            count++; //计算有多少个数
            if(count%5==0) //每五个换行
            {
              System.out.println();
            }
          }
        }
      }
    }

b、完整代码:

public class exercise09 {
  public static void main(String[] args) {
    int count = 0;
    for(int i=1;i<=4;i++)
    {
      for(int j=1;j<=4;j++)
      {
        for(int z=1;z<=4;z++)
        {
          if(i!=j && j!=z && z!=i)
          {
            System.out.print(100*i+10*j+z+"\t");
            count++;
            if(count%5==0)
            {
              System.out.println();
            }
          }
        }
      }
    }
    System.out.println("\n"+"总共有"+count+"个数");
  }
}



相关文章
|
1天前
|
存储 安全 Java
Java并发编程中的高效数据结构:ConcurrentHashMap解析
【4月更文挑战第25天】在多线程环境下,高效的数据访问和管理是至关重要的。Java提供了多种并发集合来处理这种情境,其中ConcurrentHashMap是最广泛使用的一个。本文将深入分析ConcurrentHashMap的内部工作原理、性能特点以及它如何在保证线程安全的同时提供高并发性,最后将展示其在实际开发中的应用示例。
|
1天前
|
Java API 调度
[Java并发基础]多进程编程
[Java并发基础]多进程编程
|
2天前
|
Java API 调度
[AIGC] 深入理解Java并发编程:从入门到进阶
[AIGC] 深入理解Java并发编程:从入门到进阶
|
2天前
|
前端开发 Java 测试技术
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
2天前
|
IDE Java 开发工具
Java从入门到精通:1.3.1实践编程巩固基础知识
Java从入门到精通:1.3.1实践编程巩固基础知识
|
6天前
|
IDE Java 物联网
《Java 简易速速上手小册》第1章:Java 编程基础(2024 最新版)
《Java 简易速速上手小册》第1章:Java 编程基础(2024 最新版)
13 0
|
7天前
|
安全 Java 开发者
Java并发编程:深入理解Synchronized关键字
【4月更文挑战第19天】 在Java多线程编程中,为了确保数据的一致性和线程安全,我们经常需要使用到同步机制。其中,`synchronized`关键字是最为常见的一种方式,它能够保证在同一时刻只有一个线程可以访问某个对象的特定代码段。本文将深入探讨`synchronized`关键字的原理、用法以及性能影响,并通过具体示例来展示如何在Java程序中有效地应用这一技术。
|
8天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。