死幽亡灵 发表于 2014-6-13 22:31:22

c语言5个数,正好表示1-9的数且不重复,按一定的排序,后一个比前一个大9

haovcf 发表于 2014-6-13 22:31:23

分析 设最小的数是low 则剩下的数是
low low+9 low +18 low+27 low+36
可以看出假如 low = 8 则,这组数为
8 17 26 35 44
观察发现
这五个数个位数是递减的。二十位数是递增。
所以max /10 =4; 根据范围确定是4
low /10 = 0 最小整数 ;
low%10=low 是这5个数中最大余数9
所以low = 9 ; 其余分别是 18 27 36 45

haovcf 发表于 2014-6-14 02:12:13

数字就是 9 18 27 36 45

死幽亡灵 发表于 2014-6-14 21:31:46

haovcf 发表于 2014-6-14 02:56 static/image/common/back.gif
分析 设最小的数是low 则剩下的数是
low low+9 low +18 low+27 low+36
可以看出假如 low = 8 则,这组数 ...

分享一下你的代码

牡丹花下死做鬼 发表于 2014-6-15 08:23:01

三楼正解
五个数字不难发现十位递增,各位递减
很明显就是9 18 27 36 45

haovcf 发表于 2014-6-23 00:10:43

#include <stdio.h>
void sortnum(int s[] ) ;
int checknum( int s[] ) ;
int main( void )
{
        int a = {0} ;
        int i = 0 ,j = 0 , n = 0;
        int firstnum = 0 ;
        for( i = 1 ; i< 10 ; i++ )
        {
                for(j=i ; j< 46 ; j += 9 )
                {
                        a = j/10;
                        a = j%10;
                }
                firstnum = a ;
                sortnum( a ) ;
                if( checknum( a ) )
                          break ;
                n = 0 ;
        }

        printf("%d\n", firstnum ) ;
        return 0 ;
}
voidsortnum( ints[] )
{
        int i , j;
        int tmp = 0 ;

        for(i = 0 ; i< 10 ; i++)
                for(j = i+1 ; j<10 ; j++ )
           {
                   if( s> s )
                   {
                          tmp = s ;
                          s = s ;
                          s =tmp ;
                   }
          }

}
int checknum( int s[] )
{
        int i ;
        int rightnum = 1 ;

        for(i = 0 ; i< 10 ; i++ )
        {
                if( s != i)
                {
                        rightnum = 0 ;
                        break ;
                }

        }
        return rightnum ;
}
各位参考一下

欣欣celin 发表于 2014-6-24 22:09:10

num =
i = 0, j = 0, n = 0, m = 0
for (i in num)and (j in num):
    if num!=num:
      n=num*10+num
      if (n-m == 9):
            m = n
            print(m)
    elif:
      j += 1
      continue
    elif:
      i += 1
      continue
偶用python这样写,运行时报错:invalid syntax(无效语法),该怎么改才能达到上述目的呢,有劳路过大神,大牛支招支招,感谢感谢

欣欣celin 发表于 2014-6-24 22:15:26

还是悬赏吧,URL是:
用 python 解 C 的问题,失败了,求大神支招
http://bbs.fishc.com/thread-48763-1-1.html
{:7_174:}

死幽亡灵 发表于 2014-12-20 20:09:27

已解决!谢谢
页: [1]
查看完整版本: c语言5个数,正好表示1-9的数且不重复,按一定的排序,后一个比前一个大9