| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3259 人关注过本帖
标题:Uva 371 一直超时 求大佬解答
只看楼主 加入收藏
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
结帖率:66.67%
收藏
已结贴  问题点数:12 回复次数:34 
Uva 371 一直超时 求大佬解答
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
#include <stdio.h>
#include <stdlib.h>
int Count(int n, int m);

int main()
{
    long long i, j, temp;
    int p, max, sum, maxnumber;

    while(scanf("%I64d%I64d",&i,&j) == 2 && (i != 0 && j != 0))
    {
        if(i > j)
        {
            temp = i;
            i = j;
            j = temp;
        }
        sum = 0;
        max = 0;
        for(p = i; p <= j; p++)
        {
            sum = Count(p, j);
            if(sum > max)
            {
                max = sum;
                maxnumber = p;
            }
        }
        printf("Between %I64d and %I64d, %d generates the longest sequence of %d values.\n", i, j, maxnumber, max);
    }
    return 0;
}

int Count(int n, int m)
{
    int i;
    i = 0;
    while(n != 1)
    {
        if(n%2 == 0)
            n/=2;
        else
            n = n*3 + 1;
        i++;
    }
    return i;
}



求大佬解决超时问题
搜索更多相关主题的帖子: color 
2017-03-12 16:50
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
请问j的含义是什么呢~调用函数里面没有调用m的值~

明白了~j是步数~

[此贴子已经被作者于2017-3-12 17:23编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-12 17:22
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
收藏
得分:0 
回复 2楼 九转星河
因为我上一个题和这个差不多 所以直接用了函数
没有了J 还是超时
2017-03-12 17:34
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 Lukyo
当n=1时如果非特殊情况(p>2)就不用算了吧~因为1 4 2 1又是一个循环了~

PS:试试这样用位运算判断 if (n%2)n>>=2;

这相当于if (n%2)n/=2;感觉前者用位运算执行效率会高一些~

[此贴子已经被作者于2017-3-12 17:46编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-12 17:37
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
收藏
得分:0 
回复 4楼 九转星河
嗯?没看懂呐
2017-03-12 17:39
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 Lukyo
现在还有点不确定~感觉要自己要做一下才知道~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-12 17:48
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
收藏
得分:0 
回复 6楼 九转星河
能麻烦  大佬   写一下吗?
2017-03-12 17:52
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:0 
哪里那么麻烦
你把你的%I64d 都改成%d试试
还有long改成int
真不知道你要%I64d干嘛
2017-03-12 18:05
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
收藏
得分:0 
回复 8楼 mnmn4429
最开始我就是用的 int类型的  后来改成了 longlong 类型的
2017-03-12 18:08
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:0 
真是的,你也不把英语翻译翻译,让我好费劲才看懂
2017-03-12 18:08
快速回复:Uva 371 一直超时 求大佬解答
数据加载中...
 
   



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

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