大小之差

来源:互联网 发布:js下一个兄弟元素 编辑:程序博客网 时间:2024/04/29 21:22

    题目描述:

    某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 0bool 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);   }}



0 0