大小之差

    题目描述:

    某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。

    该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。


    比如:766431 - 134667 = 631764 就是具有这样特征的数字。
    
    你还能找到另一个这样的6位数吗?
    
    请填写它重新排列数位后得到的最大数:________________  

   请通过浏览器提交答案。
   注意:只提交另一个6位数,题中已经给出的这个不要提交。

   注意:不要书写其它的内容(比如:说明性的文字)。*/


源代码:


 题目标题: 大小之差


    某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。
    该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。


    比如:766431 - 134667 = 631764 就是具有这样特征的数字。
    
    你还能找到另一个这样的6位数吗?
    
    请填写它重新排列数位后得到的最大数:________________  

请通过浏览器提交答案。
注意:只提交另一个6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。


#include<stdio.h>
#include<stdlib.h>
#define null 0
bool isSame(char ch1[], char ch2[])
{
int i,j,flag1=0,flag2=0;
for(i=0;ch1[i]!='\0';i++)
{
   for(j=0;ch2[j]!='\0';j++)
{
 if(ch1[i]==ch2[j])
 {
    flag1++;
break;
 }
}
}
for(i=0;ch2[i]!='\0';i++)
{
   for(j=0;ch1[j]!='\0';j++)
{
 if(ch2[i]==ch1[j])
 {
    flag2++;
break;
 }
}
}
if((flag1==flag2)&&(flag2==6))
return true;
 
    return false;


}
void main(){
 int a,b,c,d,e,f;
 for(a=1;a<=9;a++)
for(b=a;b<=9;b++)
for(c=b;c<=9;c++)
for(d=c;d<=9;d++)
for(e=d;e<=9;e++)
for(f=e;f<=9;f++)
{
  int max,min,differ; 
  char buffer[20],buffer1[20];//两个字符类型的指针,分别用来指向转换成字符串的数字
  max=f*100000+e*10000+d*1000+c*100+b*10+a;//得到最大值 
  min=a*100000+b*10000+c*1000+d*100+e*10+f;//得到最小值
  differ= max-min;//得到最大值和最小值之差
  itoa(max,buffer,10);//转换函数,将int型的变量转换成字符串(例如可以用来将100,转换成"100",并用m指向转换后的字符串)
  itoa(differ,buffer1,10);
  bool same=isSame(buffer,buffer1); 


  if(same)
  printf("%2d\t",max);
  


 }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值