首页 新闻 搜索 专区 学院

6084问题 Java

0
[待解决问题]

任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
例如:3721 这个数,可以重组成:7321 和 1237,差值为 7321-1237。
输入格式
一个四位数。
输出格式
题目中所说的差值。
没有思路???

小李的日常的主页 小李的日常 | 菜鸟二级 | 园豆:204
提问于:2022-01-07 21:02
< >
分享
所有回答(4)
0

这个貌似不难吧,把输入的4个数字,转成字符串,再把字符串转成字符 再把字符转成数字,然后排序,再把数组转成字符串后再转成数字进行计算,然后输出结果。

中华鲟3670 | 园豆:647 (小虾三级) | 2022-01-07 22:01
0

//伪代码
int a[]=new int[4];
a[0]=3721%1000;
a[1]=(3721-a[0]1000)%100;
a[2]=(3721-a[0]
1000-a[1]100)%10;
a[3]=(3721-a[0]
1000-a[1]100-a[2]10)%1;
//排序
Array.Sort(a);
int max=a[3]1000+a[2]100+a[1]10+a[0];//最大
int min=a[0]
1000+a[1]100+a[2]10+a[0];//最小
int diff=max-min;//差值
print diff

int diff=max-min;

HelloLLLLL | 园豆:214 (菜鸟二级) | 2022-01-07 23:24
0

这个简单呀!

瓢儿菜 | 园豆:188 (初学一级) | 2022-01-09 09:07
0

难度不大,我用C++写一个,主体算法是类似的,建议自己再写一遍

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
  char s[10];
  char t[10];
  scanf("%s",s);//使用字符串的形式输入
  strcpy(t,s);
  sort(s,s+4);//将字符串顺序排序
  sort(t,t+4);
  reverse(t,t+4);//将字符串倒序排序
  int a1,a2;
  sscanf(s,"%d",&a1);//字符串转数字
  sscanf(t,"%d",&a2);
  printf("%d",a2-a1);//求差
}
计算机知识杂谈 | 园豆:470 (菜鸟二级) | 2022-01-09 11:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册