您的位置:首页 > 编程语言 > C语言/C++

hdu1032解题报告

2014-01-19 17:44 323 查看




思路:题的大意是输入两个数(注意,这里没有说第一个数一定要小于第二个数),然后对这两个数之间的所有整数包括端点的数,进行一种规律运算,并求出运算的次数,比较所有的数规律运算次数,输出最大的
编程语言:C语言
代码如下:
#include<stdio.h>

void main()

{

 __int64 n, m, i, temp;

 while (scanf("%I64d%I64d", &n, &m) != EOF)

 {

  __int64 max = 0, x = 0, y = 0;

  printf("%I64d %I64d ", n, m);

  if (n > m)

  {

   max = n;

   n = m;

   m = max;

   max = 0;

  }

  for (i = n; i <= m; i++)

  {

   __int64 step = 0, t;

   t = i;

   while (1)

   {

    if (t == 1)

     break;

    if (t % 2 != 0)

    {

     t = 3 * t + 1;

     step = step + 1;

     continue;

    }

    else

    {

     t = t / 2;

     step = step + 1;

     continue;

    }

   }

   temp = step + 1;

   if (max < temp)

    max = temp;

  }

  printf("%d\n", max);

 }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言