| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:一道看不懂的题目
只看楼主 加入收藏
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
编译后的结果:
F:\学习\TEST\test.c(147) : error C2143: syntax error : missing ')' before '='
F:\学习\TEST\test.c(147) : error C2072: 'isOneSolve' : initialization of a function
F:\学习\TEST\test.c(147) : error C2059: syntax error : ')'
F:\学习\TEST\test.c(148) : error C2143: syntax error : missing ';' before '{'
F:\学习\TEST\test.c(148) : error C2449: found '{' at file scope (missing function header?)
F:\学习\TEST\test.c(156) : error C2059: syntax error : '}'
F:\学习\TEST\test.c(171) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(171) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(171) : error C2143: syntax error : missing ')' before 'type'
F:\学习\TEST\test.c(171) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(171) : error C2065: 'nd' : undeclared identifier
F:\学习\TEST\test.c(171) : warning C4552: '<' : operator has no effect; expected operator with side-effect
F:\学习\TEST\test.c(171) : error C2059: syntax error : ')'
F:\学习\TEST\test.c(172) : error C2143: syntax error : missing ';' before '{'
F:\学习\TEST\test.c(173) : warning C4013: 'p1' undefined; assuming extern returning int
F:\学习\TEST\test.c(182) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(182) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(182) : error C2143: syntax error : missing ')' before 'type'
F:\学习\TEST\test.c(182) : error C2143: syntax error : missing ';' before 'type'
F:\学习\TEST\test.c(182) : error C2065: 't' : undeclared identifier
F:\学习\TEST\test.c(182) : warning C4552: '>' : operator has no effect; expected operator with side-effect
F:\学习\TEST\test.c(182) : error C2143: syntax error : missing ';' before ')'
F:\学习\TEST\test.c(187) : error C2059: syntax error : 'return'
F:\学习\TEST\test.c(188) : error C2059: syntax error : '}'
2009-08-25 15:47
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
以下是全部程序,你只copy了一部分吧...

int isOneSolve(int n, int nMax = 100)
{
    int nRet=0; //记录满足本条件数
    for (int nd=2; nd*nd<n; ++nd)
    {
        if ( n%nd==0 && n/nd<nMax)
            if (++nRet>1) return 0;
    }
    return nRet;
}
//条件1,sum的任意和的分拆之积不可能有唯一分解,否则对方可能猜出
int p1(int sum)
{
    if(sum<6) return 0;
    for (int t=(sum-1)/2; t>1; --t)
    {
        if ( isOneSolve(t*(sum-t)) ) return 0;
    }
    return 1;
}
//条件2,只有一种积的分拆满足条件1
int p2(int times2)
{
    int nRet=0; //记录满足本条件数
    for (int nd=2; nd*nd<times2; ++nd)
    {
        if ( times2%nd==0 && p1(nd+times2/nd) )
            if (++nRet>1) return 0;
    }
    return nRet;
}
//条件3,只有一种和的分拆满足条件2
int p3(int sum)
{
    int nRet=0; //记录满足本条件数
    for (int t=(sum-1)/2; t>1; --t)
    {
        if ( p2(t*(sum-t)) )
            if (++nRet>1) return 0;
    }
    return nRet;
}

#include <stdio.h>
//作者:雨中飞燕
int main(int argc, char *argv[])
{
    for (int n=6; n<200; ++n) //穷举和的可能,最大不超过200
    {
        // 其和能同时满足条件1和3者即为结果
        if (p1(n) && p3(n))
        {
            //找出对应解
            for (int t=2; t*2<n; ++t)
            {
                if ( p2(t*(n-t)) ) //分拆结果符合条件2就输出
                    printf("%d %d\n", t, n-t);
            }
        }
    }
    puts("Finish");getchar();return 0;
}
2009-08-25 15:53
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
我的确全部copy了,我是在VC下运的,编译后和刚才一样
2009-08-25 15:59
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
不知道了,我没用过VC,你试试看把头文件提到最前面,然后去掉所有的注释再看看..
2009-08-25 16:02
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
哟西,还是不行。你是用什么的?

[ 本帖最后由 CCVC果冻爽 于 2009-8-25 16:04 编辑 ]
2009-08-25 16:03
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
GCC
2009-08-25 16:23
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
怪不得这编译器很强悍的说。
2009-08-25 16:25
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
你把 for (int n=6; n<200; ++n)
这样的变量定义拉出来单独定义,可能VC不支持这种定义吧...
2009-08-25 16:51
zoeypipi
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2009-7-30
收藏
得分:0 
关键是要看懂题目,弄懂它的意思,例如说 S先生说,这两个数我不知道,你也不知道,那么就意味着,这两个数的和可以拆分出来的所有分组,它们的积的约数不唯一例如说 这两个数的和不可能是5,因为5=2+3,这样S先生就知道这两个数是2、3, 也不可能是6,这两个数的和也不可能是7,因为7=2+5,3+4,而S先生说“这两个数我不知道,你也不知道,”如果是2,5,那么P先生就知道答案了,思想大概是这样
2009-08-25 18:05
快速回复:一道看不懂的题目
数据加载中...
 
   



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

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