- 问答
常用自定义函数
- 2024-4-27 11:15:12 @
1 判断素数
bool is_prime(int n){
if(n==1){
return false;
}
for(int i=2;i<n;i++){
if(n%i==0){
return false;
}
}
return true;
}
2 判断润年
bool is_leap(int year){
return year % 400 == 0 || year % 100 != 0 && year % 4 == 0;
}
3 翻转一个整数
int is_reverse(int n){
int ys;
int ans=0;
while(n>0){
ys=n%10;
ans=ans*10+ys;
n/=10;
}
return ans;
}
4 十进制转任意进制
如果传入为 10,则如 数字反转
reverse 头文件
#include <iostream>
#include <string>
#include <algorithm>
string itoa(int n, int r) {
// 十进制转任意进制 2,8,10,16,36
int k = 0, t;
string s = "";
while (n) {
t = n % r;
if (t > 9) {
s += t - 10 + 'A';
} else {
s += '0' + t;
}
n /= r;
k++;
}
// reverse(s.begin(), s.end());
// return s;
string ans = "";
for(int i = s.size() -1; i >=0; i--){
ans += s[i];
}
return ans;
}
使用示例
itoa(5,2)
把十进制 5 转为 2 进制
任意进制转十进制
int Atoint(string s,int r) //s是给定的radix进制字符串
{
int ans = 0;
for(int i = 0; i < s.size(); i++)
{
if(s[i] >= '0' && s[i] <= '9')
ans = ans*r + s[i] - '0';
else
ans = ans*r + s[i] - 'A' + 10;
}
return ans;
}
2 条评论
-
mengzihan LV 6 @ 2024-6-29 11:22:57
#include <bits/stdc++.h> using namespace std; string s(int a){ string n=" "; int b=0; char c; while(a>0){ b=a%36; a=a/36; if(b>10){ c='A'+(b-10); }else{ c='0'+b; } n=n+c; } reverse(n.begin(),n.end()); return n; } int main(){ int m; cin>>m; cout<<s(m); return 0; }
-
2024-4-27 11:16:06@
素数 bool ss(int n){ if(n==1){ return false; } for(int i=2;i<n;i++){ if(n%i==0){ return false; } } return true; } 质数 int zs(int n){ int ys; int ans=0; while(n>0){ ys=n%10; ans=ans*10+ys; n/=10; } return ans; }
👍 1
- 1