注意事项:
i,j的输入大小顺序不确定因此要比较i,j并交换
i,j要提前打印,如果输入时i>j,交换后,i,j的值就交换了,打印时就出错
n = n*3+1可能导致溢出,因此直接将i,j,n全设为long long以绝后患
参考代码:
#include <stdio.h> int Max(long long i, long long j) { long long n; int max = 0; for (n = i; n <= j; n++) { long long start = n; int count = 0; while (n != 1) { if (n % 2 == 0) { n /= 2; } else { n = n * 3 + 1; } count++; } count += 1; if (count > max) { max = count; } n = start; } return max; } int main(void) { long long i, j; while (~scanf("%lld%lld", &i, &j)) { printf("%lld %lld ", i, j);//提前打印 if (i > j)//保证i<j { long long a = i; i = j; j = a; } printf("%d\n", Max(i, j)); } return 0; }
0.0分
0 人评分
【计算球体积】 (C语言代码)浏览:1070 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:766 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:640 |
程序员的表白 (C语言代码)浏览:1464 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:591 |
简单的a+b (C语言代码)浏览:641 |
三角形 (C++代码)递推浏览:825 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:688 |
printf基础练习2 (C语言代码)浏览:796 |