您的位置:首页 > 其它

降序排列——对于一个大于3位数的任意整数

2012-09-20 08:46 218 查看
/* (程序头部注释开始) </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);

}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class c
相关文章推荐