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 条评论

  • @ 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