鱼C论坛

 找回密码
 立即注册
查看: 2314|回复: 8

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

[复制链接]
发表于 2014-6-13 22:31:22 | 显示全部楼层 |阅读模式
2鱼币

最佳答案

查看完整内容

分析 设最小的数是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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-14 02:12:13 | 显示全部楼层
数字就是 9 18 27 36 45
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-6-14 21:31:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-15 08:23:01 | 显示全部楼层
三楼正解
五个数字不难发现十位递增,各位递减  
很明显就是9 18 27 36 45
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-23 00:10:43 | 显示全部楼层
#include <stdio.h>
void sortnum(int s[] ) ;
int checknum( int s[] ) ;
int main( void )
{
        int a[10] = {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[n++] = j/10;
                        a[n++] = j%10;
                }
                firstnum = a[1] ;
                sortnum( a ) ;
                if( checknum( a ) )
                          break ;
                n = 0 ;
        }

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

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

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

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

        }
        return rightnum ;
}
各位参考一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-24 22:09:10 | 显示全部楼层
num = [1,2,3,4,5,6,7,8,9]
i = 0, j = 0, n = 0, m = 0
for (i in num)and (j in num):
    if num[i]!=num[j]:
        n=num[i]*10+num[j]
        if (n-m == 9):
            m = n
            print(m)
    elif:
        j += 1
        continue
    elif:
        i += 1
        continue
偶用python这样写,运行时报错:invalid syntax(无效语法),该怎么改才能达到上述目的呢,有劳路过大神,大牛支招支招,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-24 22:15:26 | 显示全部楼层
还是悬赏吧,URL是:
用 python 解 C 的问题,失败了,求大神支招
http://bbs.fishc.com/thread-48763-1-1.html
{:7_174:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-12-20 20:09:27 | 显示全部楼层
已解决!谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 11:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表