| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 941 人关注过本帖, 1 人收藏
标题:UVA上的简单3n+1问题想不通
只看楼主 加入收藏
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
结帖率:50%
收藏(1)
 问题点数:0 回复次数:8 
UVA上的简单3n+1问题想不通
原题在http://uva.
有个牛人翻译并做出了C++ http://
我做了几次都过不了  
请大家指教
#include<stdio.h>
int f(int a)
{    int i=1;
    while(a!=1)
    {
        if(a%2==0)
            a=a/2;
        
        else
            a=3*a+1;
        i++;
    }
    return i;
}
//f函数判断周期长度
main()
{
    int a,b,max,i,t;
    while(scanf("%d%d",&a,&b)==2)
    {
        if(a>b) {t=a;a=b;b=t;} //防止耍赖
        max=f(a);//初始一个最大长度
        for(i=a;i<=b;i++)//从a到b循环算出每个数的周期长度
        max=max>f(i)?max:f(i);//打擂
        printf("%d %d %d\n",a,b,max);
    }
    return 0;
}
搜索更多相关主题的帖子: 翻译 函数 include return 
2011-01-22 00:23
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
收藏
得分:0 

给点回音啊

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-01-22 00:30
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
收藏
得分:0 
现在研究了出来
#include<stdio.h>
int f(int a)
{    int i=1;
    while(a!=1)
    {
        if(a%2==0)
            a=a/2;
        
        else
            a=3*a+1;
        i++;
    }
    return i;
}

main()
{
    int a,b,max,i,t,q;
    while(scanf("%d%d",&a,&b)==2)
    {    q=0;
        if(a>b) {t=a;a=b;b=t;q=1;}
        max=f(a);
        for(i=a;i<=b;i++)
        max=max>f(i)?max:f(i);
        if(q) printf("%d %d %d\n",b,a,max);
        else
        printf("%d %d %d\n",a,b,max);
    }
    return 0;
}
这个换回来才对
而且有中文注释会编译错误~~
弄明白值了,晚安

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-01-22 00:51
zjsxwc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:252
专家分:601
注 册:2011-1-20
收藏
得分:0 
模拟题有什么好说的,写的时候,注意记录下,已经求过的数的周期,因为每个数求周期的时候肯定会出现大量重复的情形,像你这样不记录是很没效率的

[ 本帖最后由 zjsxwc 于 2011-1-22 10:50 编辑 ]

The tools I recommended:
GUI: CSharp(VS), QT;    Core Code: Plain C (Tiny C Compiler);    Web: Python, JavaScript;    Android: Java;    Embedded System: ASM&C (Linux)
2011-01-22 10:48
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
虽然效率不行。不过能做出来就好~
2011-01-22 11:36
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
收藏
得分:0 
LS
请问记录什么?
怎样才更效率点?
求指教啊~~

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-01-22 12:40
zhanhb
Rank: 2
等 级:论坛游民
帖 子:29
专家分:70
注 册:2010-12-21
收藏
得分:0 
把f()换成f[]增加效率
2011-01-22 23:32
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
能做出来就好~

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-01-23 19:04
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
3n+1问题是经典的动态规划

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-01-23 20:46
快速回复:UVA上的简单3n+1问题想不通
数据加载中...
 
   



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

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