/* (程序头部注释开始) </p><p>* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* 作 者: 李兆庆
* 完成日期: 2012 年 9 月 20 日
* 输入描述:
* 问题描述及输出:
* 实现功能:对于一个大于3位数的任意整数,输出其降序数。例如,整数82319,则其降序数是98321.
* 程序头部的注释结束
*/
import javax.swing.JOptionPane;
public class Num {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str=JOptionPane.showInputDialog("请输入一个大于三位数的整数");
int w = str.length();
System.out.println("您输入的数字位数为:"+w);
int a = Integer.parseInt(str);
System.out.println("您输入的数字为:"+a);
sort( a, w);
}
static void sort(int n ,int m){
int s = 1,k=0;
int [] a = new int [m];
for (int i = 1; i < m; i++)
{
s = s*10;
}
k = s; //将s的值保存下来,最后获得目标数字时使用。
for (int i = 0; i < m; i++) //将输入数的各个位数对应的数值分别存放在a数组中。
{
a[i] = n / s;
n = n % s;
s = s / 10;
// System.out.print(" "+x)
}
for (int i = 0; i < m ; i++) //将数组中的元素进行由高到低的排序
{
for (int j = 0; j < m-1; j++)
{
int t;
if (a[j] < a[j+1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
int e = 0;
for (int i = 0; i< m; i++) //得到降序后的目标数字。
{
e = e +a[i]*k;
k=k/10;
//System.out.println(e);
}
System.out.println("降序数为:"+e);
System.out.println(m);
}
}