| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2028 人关注过本帖, 2 人收藏
标题:一道数字游戏题,找出具有此特性的9位数
只看楼主 加入收藏
取消关键字高亮
vdestroyer
Rank: 2
等 级:论坛游民
帖 子:136
专家分:14
注 册:2009-1-7
结帖率:96.43%
收藏(2)
已结贴  问题点数:30 回复次数:15 
一道数字游戏题,找出具有此特性的9位数
我们要找出一个数字,符合以下两个条件:
其一:
一个9位的数字,每一位上各有1至9当中的一个数字。也就是说,每一位上的数字不和其它位上的数字重复。

其二:
例如数字 342615987
3    除以 1 可以被整除
34   除以 2 可以被整除
342  除以 3 可以被整除
3426 除以 4 不可以被整除
也就是说,数字 342615987 并不符合我们的条件。


为了方便大家检验,给出答案: 381654729

编程序找出符合上述两个条件的数字。
程序代码:
#include <stdio.h>
#include <conio.h>

int check(long long n)
{
    int i;
    char temp[10]={0};
    long long z, d, delare=100000000;
    z=n;
    
    for(i=1;i<10;i++)
    {
        //d=(int)(z/delare);
        d=z/delare;
        delare=delare/10;
        if(!(d/i==0))
        {
            return 0;
        }
    }
    for(;n;n/=10)
    {
        if(++temp[n%10]>1) return 0;
    }
    return 1;
}

int main (void)
{
    int i, j;
    long long a;
    
    for(a=100000000;a<999999999;a++)
    {
        if(check(a)==1) printf("%d\n");
    }
    getch();
}




这是我写的程序,我没发现任何错误啊?一运行为什么结果显示不出来?
搜索更多相关主题的帖子: 数字游戏 
2009-08-12 04:29
airhiphop
Rank: 4
来 自:江苏南通
等 级:业余侠客
帖 子:69
专家分:256
注 册:2007-11-16
收藏
得分:20 
我认为你这个用数组做比较好......
而且你这个每位上的数都不一样,直接调换数的位置就可以了

[ 本帖最后由 airhiphop 于 2009-8-12 05:00 编辑 ]

2009-08-12 04:58
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
回复 楼主 vdestroyer

你知道你这个程序的时间复杂度是多少么?

注意题目的这句话

"每一位上的数字不和其它位上的数字重复。"

充分利用这个条件,用数组来完成.
2009-08-12 08:38
libingchen_2
Rank: 2
等 级:论坛游民
帖 子:22
专家分:62
注 册:2009-8-7
收藏
得分:10 
你这个check函数为什么每次都return 1;
2009-08-12 12:51
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 

wxjeacen@wxjeacen-laptop:~/linux/test_c$ make
gcc  -O5 -g  -I./include/ -o lib/main.o -c src/main.c  
gcc  -O5 -g  -I./include/ -o lib/common.o -c src/common.c  
gcc  -O5 -g  -o bin/outcome lib/main.o lib/common.o  
gcc -shared -o ./lib/libcommon.so ./lib/main.o ./lib/common.o  
wxjeacen@wxjeacen-laptop:~/linux/test_c$ ./outcome
3 8 1 6 5 4 7 2 9
wxjeacen@wxjeacen-laptop:~/linux/test_c$

test_c.tar.gz (16.94 KB)

生命不熄,战斗不止.
2009-08-12 13:42
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
以下是引用wxjeacen在2009-8-12 13:42的发言:wxjeacen@wxjeacen-laptop:~/linux/test_c$ makegcc  -O5 -g  -I./include/ -o lib/main.o -c src/main.c  gcc  -O5 -g  -I./include/ -o lib/common.o -c src/common.c  gcc  -O5 -g  -o bin/outcome ...
没想到高人也由这份闲心了....
2009-08-12 13:58
vdestroyer
Rank: 2
等 级:论坛游民
帖 子:136
专家分:14
注 册:2009-1-7
收藏
得分:0 
回复 3楼 godbless

我在顶楼贴的程序确实有算法漏洞,而且,就算没有,也要运行好几个小时才能算出来,太慢了。
我正在用你说的思路重新写程序。。。
2009-08-12 20:33
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
We are waiting for your code.

生命不熄,战斗不止.
2009-08-12 22:57
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
噢,明白大概意思了

八皇后问题
递归。。。

[ 本帖最后由 soler 于 2009-8-13 01:40 编辑 ]
2009-08-13 01:10
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
回复 9楼 soler


我告诉你个更好听的学名,回溯剪枝。

生命不熄,战斗不止.
2009-08-13 10:02
快速回复:一道数字游戏题,找出具有此特性的9位数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072484 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved