随便记记一些精彩的小东西
C++判断一个数是不是整数
法一:
if(t!=(int)t) cout<<"NO\n";
else cout<<"YES\n";
利用数据类型强制转换来判断
错误摘记
!(b==n&&a==n) ≠ (b!=n&&a!=n)
判断一个数是不是2的幂次方
利用 \(n \& (n - 1)\) 来判断,式子为 0 即说明原数为 2 的幂次方
比如说 \(16_{10} = 10000_2,15_{10} = 1111_2,16 \& 15 = 0\)
ll n;
cin >> n;
if((n & (n - 1)) == 0) cout << "YES\n";
else cout << "NO\n";
如何证明 1²+2²+…+n² 为平方数的解只有 n=1 或 n=24?
得到排序的排名
void solve(){
int n = 7;
int a[] = {3, 7, 1, 4, 5, 2, 6};
vector<int> id(n);
iota(id.begin(), id.end(), 0);
for(int i = 0; i < n; ++ i){
cout << id[i] << " \n"[i == n - 1];
}
sort(id.begin(), id.end() ,[&](int i, int j){
return a[i] > a[j];
});
// id数组表示第 i 名在 id[i] 的位置
for(int i = 0; i < n; ++ i){
cout << a[i] << " \n"[i == n - 1];
}
for(int i = 0; i < n; ++ i){
cout << id[i] << " \n"[i == n - 1];
}
return ;
}
本文来自博客园,作者:Qiansui,转载请注明原文链接:https://www.cnblogs.com/Qiansui/p/17153034.html