计算两个数的和,并按要求转换,将转换后的数输出

问题描述:

计算两个数的和,并按要求转换,将转换后的数输出
1.输入任意两个正整数,相加求和,其和值存放到一个变量当中,将该和值的每一位与9相减得到的绝对值组成一个新数,存放到变量r当中,并输出r的值.
2.将上一步得到的r的每一位的数值除0以外从小到大排列,得到另外一个新数s,记录r中各位出现0的次数n,则在新数s右边添加n个零并输出.
如:
第一步:
输入的两个数分别为247 35724
得到的和为 35971
每一位与9相减得到的绝对值组成的新数为
64028
输出结果为:64028
第二步:
第一步的结果为64280,其非零数分别为6、4、2、8,则得到新数为2468,而0出现的次数为1,那么在2468后面添加一个0,得到最终的数为24680,
输出结果为24680

说实话,谁出的题目那么坑爹,没啥技术感,也没算法训练这种说法,就知道猛得叠加任务,实际涉及的技术含量却很低.就是欺负你时间多.
下面是用最笨的办法,最直接的办法做的,控制台程序:你看着调用吧!别说调用方法都不会,那太坑了.
private static int s,r; //声明变量
static void Main(string[] args)
{
Arithmetic(247,35724); //调用方法
Console.WriteLine("r="+r.ToString()+" s="+s.ToString()); //输出
Console.Read();
}
public static void Arithmetic(int K1,int K2)
{
int sum;
string str = string.Empty;
List sumlist = new List();
//求和
sum = K1 + K2;
//求绝对值r
foreach (char item in sum.ToString())
{
str += (9 - int.Parse(item.ToString())).ToString();
}
r = int.Parse(str);
//冒泡排序,先序列化.
int lenght = str.Length;
for (int i = 0; i {
sumlist.Add(int.Parse(str[i].ToString()));
}
//开始冒泡
for (int i = 0; i {
for (int j = i + 1; j {
int temp = 0;
if (sumlist[i] > sumlist[j])
{
temp = sumlist[i];
sumlist[i] = sumlist[j];
sumlist[j] = temp;
}
}
}
//排序完成后将0到屁股后面
str = "";
for (int i = 0; i {
if (sumlist[i] == 0)
{
sumlist.Remove(0);
sumlist.Add(0);
}
str += sumlist[i];
}
s = int.Parse(str);
}