欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

51nod 2020

程序员文章站 2022-05-11 17:41:07
...

题目????2020
这个代码有点啰嗦,但是好理解????

#include<stdio.h>
#include<string.h>
void sort1(char str[],int n)//从大到小排序 
{
 int i,j;
 char s;
 for(i=0;i<n;i++)
 for(j=i+1;j<n;j++)
 {
  if(str[i]<str[j])
  {
   s=str[i];str[i]=str[j];str[j]=s;
  }
 }
}
void sort2(char str[],int n)//倒叙 
{
 int i,j;
 char s;
 for(j=n-1,i=0;i<j;j--,i++)
 {
   s=str[i];str[i]=str[j];str[j]=s;
 }
}
int main(void)
{
 int i,j,k,l,n,m;
 scanf("%d",&n);
 while(n--)
 {
  char c[5];
  scanf("%s%d",c,&m);
  sort1(c,strlen(c));//先排序 
   sscanf(c,"%d",&l);//把字符串转为数字 
  while(m--)//转换次数 
  {
   sort1(c,strlen(c));//将下一次的字符串排序 
    sscanf(c,"%d",&l);//继续转为数字 
   sort2(c,strlen(c));//记录它倒叙后的数 
    sscanf(c,"%d",&k);// 把倒叙后的字符串转为数字 
   l=abs(l-k); //求差 
    sprintf(c,"%d",l);//将差转为字符串给下次运算 
  }
  printf("%d\n",l);//输出 
 }
 return 0;//over 
}