点赞(0)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

追梦人 2年前 回复TA
#include<stdio.h>
int main(void)
{
	int I, J, i, j,a,count1=0;
	while (~scanf("%d%d", &I, &J)) {
		for (i = I;i <= J;i++)
		{
			int count = 1;
			a = i;
			while (a != 1)
			{
				if (a % 2 == 0)
				{
					a = a / 2;
					count++;
				}
				else {
					a = 3 * a + 1;
					count++;
				}
			}
			if (count1 < count)
				count1 = count;
		}
		printf("%d %d %d\n", I, J, count1);
	}
}
并不 3年前 回复TA
#include<stdio.h>
int count=0;
int f(int n)
{
    if(n%2==0)
    {   count++;
        n=n/2;
        return f(n);
    }
    if(n%2==1&&n!=1)
    {   count++;
        n=3*n+1;
        return f(n);
    }
    if(n==1)
        return ++count;


}
int main()
{
    int i,j,n,temp=0,max=1;
    scanf("%d %d",&i,&j);
    printf("%d %d ",i,j);
    for(n=i;n<=j;n++)
    {   temp=f(n);
        if(max<=temp)
            max=temp;
        else
            max=max;

    }printf("%d",max);
    return 0;
}
这样怎么不可以
pingfan443 4年前 回复TA
@找鱼鱼 i和j要原样输出,最后输出i和j可能已经不是原来的了
找鱼鱼 4年前 回复TA
请问为什么要先printf出i,j,最后再printf出max,为什么不可以和max一起printf出i,j,我在下面试结果是对的,但是提交就是答案错误
光仔 5年前 回复TA
@光仔 我知道错在哪里了
光仔 5年前 回复TA
#include<stdio.h>
int length(long int n)
{
	int k=1;
	while(n!=1)
	{
		if(n%2==0)
			n=n/2;
		else
			n=3*n+1;
		k++;
	}
	return k;
}
int main()
{
	long int i,j;
	while(scanf("%d%d",&i,&j)!=EOF)
	{
		long int t,max=0;
		if(i>j)
		{
			t=i;i=j;j=t;
		}
		for(t=i;t<=j;t++)
		{
			if(length(t)>=max)
				max=length(t);
		}
		printf("%d %d %d\n",i,j,max);
	}
	return 0;
}

请问这个错误33%在哪里