四位数的差c++

题目描述

输入一个四位数,将这个数各位数字倒序合成一个新数,输出原数和新数的差。

输入

一行,一个整数。

输出

一行,一个整数。

样例输入

4321

样例输出

3087

代码如下:

#include<bits/stdc++.h>
using namespace std;
long long n,a,b,c,d;
int main(){
    cin>>n;
    a=(n/1)%10;//拆个位
    b=(n/10)%10;//拆十位
    c=(n/100)%10;//拆百位
    d=(n/1000)%10;//拆千位
    cout<<n-(a*1000+b*100+c*10+d);//原数-颠倒后的数(答案)
    return 0;
}
C++中找到最小的四位数可以通过几种不同的方式实现,具体取决于问题的上下文。例如,如果目标是从一个组中找到最小的四位数,或者生成最小的四位数(如从一组数字中重排列以形成最小的四位数),则算法会有所不同。以下是一些常见的场景及其实现方式: ### 从组中查找最小的四位数 如果任务是从一个组中找到最小的四位数(即大于等于1000的最小整),可以使用简单的线性遍历方法。首先初始化一个变量 `minFourDigit` 为一个非常大的值,然后遍历组,检查每个元素是否是四位数(即大于等于1000且小于10000),如果是,并且比当前 `minFourDigit` 更小,则更 `minFourDigit`。 ```cpp #include <iostream> #include <climits> using namespace std; int main() { int arr[] = {123, 1000, 999, 9876, 1001, 9999}; int n = sizeof(arr) / sizeof(arr[0]); int minFourDigit = INT_MAX; for (int i = 0; i < n; i++) { if (arr[i] >= 1000 && arr[i] < 10000 && arr[i] < minFourDigit) { minFourDigit = arr[i]; } } if (minFourDigit == INT_MAX) { cout << "没有找到四位数" << endl; } else { cout << "最小的四位数是:" << minFourDigit << endl; } return 0; } ``` ### 从一组数字中生成最小的四位数 如果任务是从一组数字中生成最小的四位数,可以使用排序算法对组进行排序,然后取前四个数字组成最小的四位数。需要注意的是,如果组中不足四个数字,则无法生成四位数。 ```cpp #include <iostream> #include <algorithm> using namespace std; int main() { int arr[] = {9, 1, 4, 3, 7}; int n = sizeof(arr) / sizeof(arr[0]); sort(arr, arr + n); if (n >= 4) { int minFourDigit = arr[0] * 1000 + arr[1] * 100 + arr[2] * 10 + arr[3]; cout << "最小的四位数是:" << minFourDigit << endl; } else { cout << "组中不足四个数字,无法生成四位数" << endl; } return 0; } ``` ### 相关问题 1. 如何在C++中找到组中最大的四位数? 2. 如何在C++中判断一个数字是否是四位数? 3. 如何从一个组中选择四个数字组成最大的四位数? 4. 如何在C++中实现排序算法以查找最小的四位数? 5. 如果组中包含负,如何找到最小的正四位数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值