解题思路:
我们来模拟一遍很容易发现,一棵树如果想长得最高,就是看爱丽丝隔多长时间来修剪它
如图,以6为例,一定是往返的时间最长,而往返有两种方式,所以只需要比较两种往返谁大就好了。
其实如果是中间左边的(1 2 3 4),一定是往右往返最大,在中间右边的(5 6 7 8),一定是往左往返最大,但是这个中间数判断有些麻烦,要看总数是奇数还是偶数,又有整形变量精度缺失问题,索性就写个max就做比较了。
参考代码:
#include <stdio.h> #include <math.h> #define ll long long int max(int a,int b){ return a>b?a:b; } int main (){ int i,n; scanf("%d",&n); for(i=1;i<=n;i++){ printf("%d\n",max(i-1,n-i)*2); } return 0; }
0.0分
223 人评分
DNA (C++代码)浏览:650 |
点我有惊喜!你懂得!浏览:2074 |
简单的a+b (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:565 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:759 |
点我有惊喜!你懂得!浏览:4109 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码) 用函数传参的方法浏览:4078 |
C二级辅导-计负均正 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:584 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:868 |
指针原来是套娃的 2023-01-15 14:24:55 |
#define ll long long 可以把long long这八个字母简化成ll两个字母 下面代码里的ll就代表long long了
一只土狗 2023-03-01 14:01:24 |
但是我没看见代码中使用到这个宏代替啊