一、实例描述

假设 abcd 是一个四位整数,将它分成两段,即 ab 和 cd,使之相加求和后再平方。求满足该关系的所有四位整数,运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

二、技术要点

本实例采用穷举的方法对 1000 到 10000 以内的所有四位整数逐个分解成两部分再对其进行判断,看是否满足要求,如果满足则将该整数输出,否则进行下次循环。将一个四位数分解成两部分主要采用 /% 的方法,/ 求的该四位数的前两位,% 求的是该四位数的后两位。

三、代码实现

3.1 C 语言实现

/*================================================================
*   Copyright (C) 2023 AmoXiang All rights reserved.
*   
*   文件名称:04-满足abcd=(ab+cd)^2的数.c
*   创 建 者:AmoXiang
*   创建日期:2023年10月01日 19:43:25
*   描    述:
*
================================================================*/


#include <stdio.h>
int main(){
    int a=0,b=0;
    int i=1;
    for(i=1000;i<10000;i++){
        a = i / 100;
        b = i % 100;
        int num = (a + b) * (a + b);
        if(num == i){
            printf("%d\n", i);
        }
    }
}

程序运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

3.2 Python 语言实现

# -*- coding: utf-8 -*-
# @Time    : 2023/10/1 19:22
# @Author  : AmoXiang
# @File    : 04-满足abcd=(ab+cd)^2的数.py
# @Software: PyCharm
# @Blog    : https://blog.csdn.net/xw1680

"""
假设abcd是一个四位整数,将它分成两段,即ab和cd,使之相加求和后再平方。求满足该关系的所有四位整数
"""
for i in range(1000, 10000):
    # 前两位数用a表示
    a = i // 100  # 整除求出前2位数
    b = i % 100  # 取余求出后2位数
    if (a + b) ** 2 == i:
        print(i)

程序运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

3.3 Java 语言实现

/**
 * ClassName: Exercise4
 * Package: PACKAGE_NAME
 * Description:
 *
 * @Author AmoXiang
 * @Create 2023/10/1 19:38
 * @Version 1.0
 */
public class Exercise4 {
    public static void main(String[] args) {
        int a = 0, b = 0;
        for (int i = 1000; i < 10000; i++) {
            a = i / 100; // 根据题目的要求 没必要分别求出整数各个位上的数字
            b = i % 100;
            if ((a + b) * (a + b) == i) {
                System.out.println(i);
            }
        }
    }
}

程序运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

3.4 JavaScript 语言实现

let a = 0, b = 0;
for (let i = 1000; i < 10000; i++) {
    a = parseInt(i / 100);
    b = i % 100;
    // let num = (a + b) * (a + b); 写法非常多
    let num = Math.pow((a + b), 2);
    if (num === i) {
        console.log(i)
    }
}

程序运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

3.5 Go 语言实现

package main

import "fmt"

func main() {
	a := 0
	b := 0
	num := 0
	for i := 1000; i < 10000; i++ {
		a = i / 100
		b = i % 100
		num = (a + b) * (a + b)
		if num == i {
			fmt.Println(i)
		}
	}
}

程序运行结果如下图所示:
编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP
至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习编程的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)-LMLPHP

10-02 01:58