「Java学习打卡」 12、求完数、n个a连续相加

题目一:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程求指定范围内的完数。

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.print("请输入查找范围:");
        Scanner scan = new Scanner(System.in);
        int c = scan.nextInt();
        int a[] = new int[512];
        for (int i = 2; i <= c; i++) {
            int sum = a[0] = 1;
            int k = 0;
            for (int j = 2; j <= (i / 2); j++) {
                if (i % j == 0) {
                    sum += j;
                    a[++k] = j;
                }
            }
            if (i == sum) {
                System.out.print(i+"="+ a[0]);
                for (int n = 1; n <= k; n++)
                    System.out.print("+"+ a[n]);
                System.out.println();
            }
        }
        return;
    }
}

题目二:求s=a+aa+aaa+aaaa+aa…a(n个a)的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        int s = 0, t;
        System.out.println("请输入 a 和 n:");
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int n = scan.nextInt();
        t = a;
        while (n > 0) {
            s += t;
            a = a * 10;
            t += a;
            n--;
            if (n == 0) {
                System.out.print((t / 10));
            } else {
                System.out.print((t / 10) + "+");
            }
        }
        System.out.println("=" + s);
        return;
    }
}

发布了30 篇原创文章 · 获赞 0 · 访问量 461

猜你喜欢

转载自blog.csdn.net/qq_26959737/article/details/104724515
今日推荐