| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1643 人关注过本帖, 1 人收藏
标题:C语言的一道题
只看楼主 加入收藏
秦殇
Rank: 2
等 级:论坛游民
帖 子:61
专家分:77
注 册:2013-3-13
结帖率:75%
收藏(1)
已结贴  问题点数:20 回复次数:29 
C语言的一道题
将1到9这九个数字分成3个三位数a,b,c,要求第1个三位数,正好是第2个三位数的两倍,是第3个三位数的三倍。怎么编写程序,求大神指导。
搜索更多相关主题的帖子: 编写程序 C语言 
2013-04-08 23:12
mskeheng
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:179
注 册:2013-3-13
收藏
得分:2 
我想到一个复杂度比较大的算法。
用i,j,k表示最小的数的三位。易知i的取值为1,2,3,用循环列举所有可能情况
然后算出另外两个数的值,再分解这两个数,将得到的10个数排序,若为1,2,3,4,,,则满足,否则不满足。
个人表示这个算法不大好。   
2013-04-08 23:33
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:2 
先自己写程序吧,这里不能直接给程序的。
2013-04-08 23:57
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:2 
程序代码:
#include <stdio.h>

int main() {
    int x, y, z, a[10] = {0};
    for(x = 100; x < 333; x++) {
        y = 2 * x;
        z = 3 * x;
    a[x/100] = a[x/10%10] = a[x%10] = 1;
    a[y/100] = a[y/10%10] = a[y%10] = 1;
    a[z/100] = a[z/10%10] = a[z%10] = 1;
    int i, s = 0;
    for(i = 1; i < 10; i++)
        s += a[i];
        if(s == 9)
            printf("%d\t%d\t%d\n", x, y, z);
    for(i = 1; i < 10; i++)
        a[i] = 0;
    }
    return 0;
}
我没猜错的话...是C算法竞赛上的一道题吧?

[ 本帖最后由 Susake 于 2013-4-9 21:32 编辑 ]

仰望星空...........不忘初心!
2013-04-09 13:59
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
回复 3楼 yctchxf
你太天真了,总有人会发代码的,比如4楼

总有那身价贱的人给作业贴回复完整的代码
2013-04-09 14:41
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
收藏
得分:2 
其实有个很简单的方法。因为这里不让发源代码,我就发个伪代码吧。
循环100~333
for(i=100;i<=333;i++)
写一个功能函数准备调用
fun(int a,int 2*a,int 3*a)

把每一位放进数组a[9]中
判断是否每一位数字是否都不相同。

是则输出  a,2*a,3*a.   
呵呵,好像有点麻烦。


有问题一起探讨,一起进步。
2013-04-09 15:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 6楼 y3765258
没有不让发代码呀

总有那身价贱的人给作业贴回复完整的代码
2013-04-09 17:45
秦殇
Rank: 2
等 级:论坛游民
帖 子:61
专家分:77
注 册:2013-3-13
收藏
得分:0 
回复 4楼 Susake
是道竞赛题。
不过的算法貌似不对。
而且,
题目是
第一个数是第二个数的2倍,
是第三个数的3倍。
2013-04-09 18:27
秦殇
Rank: 2
等 级:论坛游民
帖 子:61
专家分:77
注 册:2013-3-13
收藏
得分:0 
回复 2楼 mskeheng
这个方法一开始试过,得不出结果。

[ 本帖最后由 秦殇 于 2013-4-9 18:50 编辑 ]
2013-04-09 18:42
秦殇
Rank: 2
等 级:论坛游民
帖 子:61
专家分:77
注 册:2013-3-13
收藏
得分:0 
回复 3楼 yctchxf
自己写的代码,
有一个直接用的循环,
还有一个先确定最小的数,
再进行数字比较。
两种算法,都得不出结果。

[ 本帖最后由 秦殇 于 2013-4-9 18:49 编辑 ]
2013-04-09 18:45
快速回复:C语言的一道题
数据加载中...
 
   



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

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