| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 941 人关注过本帖, 1 人收藏
标题:UVA上的简单3n+1问题想不通
取消只看楼主 加入收藏
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
结帖率:50%
收藏(1)
 问题点数:0 回复次数:3 
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
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
收藏
得分:0 
LS
请问记录什么?
怎样才更效率点?
求指教啊~~

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-01-22 12:40
快速回复:UVA上的简单3n+1问题想不通
数据加载中...
 
   



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

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