从键盘输入一个五位正整数,让后找出所有排列中最接近40000和60000和数。(某华大学不当人的题

#include <iostream>

using namespace std;

int main() {

    int num, n[5] = { 0 }, i, m,si=100000,liu=100000;

    printf("请输入一个五位正整数:");

    cin >> num;

    for (i = 0; i < 5; i++) {

        n[i] = num % 10;

        num /= 10;

    }

    for (int a = 0; a < 5; a++) {

        for (int b = 0; b < 5; b++) {

            if (b == a) continue;

            for (int c = 0; c < 5; c++) {

                if (c == a || c == b) continue;

                for (int d = 0; d < 5; d++) {

                    if (d == a || d == b || d == c) continue;

                    for (int e = 0; e < 5; e++) {

                        if (e == a || e == b || e == c || e == d) continue;

                        m = n[a] * 10000 + n[b] * 1000 + n[c] * 100 + n[d] * 10 + n[e];

//列出所有含这五个数的数

                        if ((m>40000&&((m - 40000) <= si-40000))||(m<=40000&&(40000-m)<=si-40000)) {

                            si = m;

                        }

                        if ((m > 60000 && ((m - 60000) <= liu-60000)) || (m <= 60000 && ( 60000-m) <= liu-60000)) {

                            liu = m;

                        }                     

                    }

                }

            }

        }

    }

       cout << si << " " << liu;

        return 0;

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值