计算几何题目?根据向量计算叉积还是乘积,具体我也没搞明白,只知道就是这么一个固定写法
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
while(cin >> n) {
double x,y,x0,y0,x1,y1,sum = 0.0;
cin >> x >> y;
x0 = x;
y0 = y;
while (n--) {
cin >> x1 >> y1;
sum += (x * y1 - y * x1);
x = x1;
y = y1;
}
sum += (x*y0-y*x0);
printf("%d\n",int(abs(sum)/2+0.5));
}
return 0;
}
看见%2可反应和奇偶有关,再看/2反应应该和二进制有关,第一个出现的数,经过列举几个数字后,发现只要二进制位上一的个数相等,结果就相等,那么第一个数就是全一的二进制数表示的十进制数大小
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while(t--) {
long long n;
cin >> n;
int onenum = 0;
long long tmp = n;
while(tmp) {
if(tmp % 2)
onenum = onenum + 1;
tmp /= 2;
}
long long firstnum = 0;
tmp = onenum;
while(tmp--)
firstnum = firstnum * 2 + 1;
cout << onenum << " " << firstnum << endl;
}
return 0;
}