通俗题解||ZXC的分蛋糕
2024-07-01 21:23:45
发布于:广东
77阅读
0回复
0点赞
唯一难点:找规律
可以画个表格,找到其中的规律,用O(1)解出。
n | ans |
---|---|
1 | = 2(1*2) |
2 | = 4(2*2) |
3 | = 6(2*3) |
4 | = 9(3*3) |
5 | = 12(3*4) |
6 | = 16(4*4) |
不难看出,
对于一个奇数n,ans=(n/2+0.5)*(n/2+1.5),
而借助C++ int除法去除小数的特性,可写为 (n/2+1) * (n-n/2+1);
对于一个偶数n,ans= (n/2+1) * (n/2+1) ,
可改写为(n/2+1) * (n-n/2+1);
可以发现,奇数和偶数都能通过(n/2+1)*(n-n/2+1)解出。
AC代码:
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
cout<<(n/2+1)*(n-n/2+1);
return 0;
}
全部评论 1
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
cout<<(n/2+2)*(n-n/2+1);
return 0;
}
//我这里好像有个错,我没找到,请大家帮我找找,在线等,挺急的!!!2024-08-05 来自 北京
0
有帮助,赞一个