一、实例描述

集邮爱好者把所有的邮票存放在三个集邮册中,在A册内存放全部的十分之二,在B册内存放不知道是全部的七分之几,在C册内存放303张邮票,问这位集邮爱好者集邮总数是多少?以及每册中各有多少邮票?运行结果如下图所示:
编程每日一练(多语言实现):求总数问题-LMLPHP

二、技术要点

根据题意可设邮票总数为 total,A册内存放全部的 2/10,B册内存放全部的 i/7,C册内存放 303 张邮票,则可列出:

total = 2/10 * total + i * total / 7 + 303
// 推出 经化简可得 total = 10605/(28-5*i)

从化简的等式来看我们可以确定出 i 的取值范围是 1<=i<=5(28-5*i不能为负数),还有一点我们要明确就是邮票的数量一定是整数不可能出现小数或其它,这就要求 i 必须要满足 10605/(28-5*i)==0

三、代码实现

3.1 C 语言实现

/*================================================================
*   Copyright (C) 2023 AmoXiang All rights reserved.
*   
*   文件名称:02-求总数问题.c
*   创 建 者:AmoXiang
*   创建日期:2023年09月27日 17:23:35
*   描    述:
*
================================================================*/


#include <stdio.h>
int main(){
    int i, total=0,a=0,b=0,c=303;
    for(i=1;i<=5;i++){ //i的取值范围从1到5
        if(10605%(28-5*i)==0){ //满足条件的i值即为所求,即7分之几的几
                total = 10605 / (28-5*i); //计算出邮票的总数
                a = 2 * total / 10; //计算a集邮册中的邮票数 
                b = i * total / 7; //计算b集邮册中的邮票数 
                break;
        }
    }
    printf("total is %d\n", total);
    printf("A: %d\n", a); //输出A集邮册中的邮票数 //输出A集邮册中的邮票数 
    printf("B: %d\n", b); //输出B集邮册中的邮票数 
    printf("C: %d\n", c);  //输出C集邮册中的邮票数 
    return 0;
}

程序运行结果如下图所示:
编程每日一练(多语言实现):求总数问题-LMLPHP

3.2 Python 语言实现

# -*- coding: utf-8 -*-
# @Time    : 2023/9/27 16:54
# @Author  : AmoXiang
# @File    : 02-求总数问题.py
# @Software: PyCharm
# @Blog    : https://blog.csdn.net/xw1680

total = a = b = 0
c = 303
for i in range(1, 6):
    if 10605 % (28 - 5 * i) == 0:
        total = 10605 // (28 - 5 * i)  # python整除需要使用//
        a = total * 2 // 10
        b = total * i // 7
        print(f"total is {total}")
        print(f"A: {a}")
        print(f"B: {b}")
        print(f"C: {c}")
        break

运行结果如下图所示:
编程每日一练(多语言实现):求总数问题-LMLPHP

3.3 Java 语言实现

/**
 * ClassName: Exercise2
 * Package: PACKAGE_NAME
 * Description:
 *
 * @Author AmoXiang
 * @Create 2023/9/27 17:59
 * @Version 1.0
 */
public class Exercise2 {
    public static void main(String[] args) {
        int total = 0, a = 0, b = 0;
        int c = 303;
        for (int i = 1; i < 6; i++) {
            if (10605 % (28 - 5 * i) == 0) {
                total = 10605 / (28 - 5 * i);
                System.out.println("total is " + total);
                a = 2 * total / 10;
                b = i * total / 7;
                System.out.println("A: " + a);
                System.out.println("B: " + b);
                System.out.println("C: " + c);
                break;
            }
        }
    }
}

运行结果如下图所示:
编程每日一练(多语言实现):求总数问题-LMLPHP

3.4 JavaScript 语言实现

let total = 0, a = 0, b = 0, c = 303;
for (let i = 1; i < 6; i++) {
    if (10605 % (28 - 5 * i) == 0) {
        total = 10605 / (28 - 5 * i);
        a = 2 * total / 10;
        b = i * total / 7;
        console.log(`total is ${total}`);
        console.log(`A: ${a}`);
        console.log(`B: ${b}`);
        console.log(`C: ${c}`);
        break
    }
}

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


编程每日一练(多语言实现):求总数问题-LMLPHP

09-28 12:55