P8723 [蓝桥杯 2020 省 AB3] 乘法表

P8723 [蓝桥杯 2020 省 AB3] 乘法表

cpp 复制代码
#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm>
#include <format>
string toBaseP(int  n,int  p){//这里不要取引用,因为会改变值
  if(n == 0) return 0;
  string res = ""; 
  while(n){
    int mod = n %p;
     res += (mod < 0?mod + '0':mod -10 + 'A');
     n /=p;
  }
  reverse(res.begin(),res.end());
  return res;
 
}
int main(){
  int n;
  cin>>n;
  for(int i=1;i<=n-1;i++){
    for(int j =1;j<=i;j++){
      int a = i *j;
      cout<<format("{}*{}={} ",toBaseP(i,n),toBaseP(j,n),toBaseP(a,n));
      /*这里的 n 是通过引用传递的(int &n),意味着在函数内部修改 n 会直接改变调
      用时的实际参数值。这在转换进制的过程中会破坏原始的值,
      导致调用 toBaseP 后 i 和 j 的值被修改。 */
      //cout<<i<<"*"<<j<<"="<<a/n<<a%n<<" ";
    }
  cout<<endl;
  }
}

C++ 中允许将字符和整数直接进行算术运算,这是因为字符在底层被存储为整数(ASCII 值)。通过这种特性,简单的数学运算就可以实现字符和数字的转换。

相关推荐
自然数e11 小时前
c++多线程【多线程常见使用以及几个多线程数据结构实现】
数据结构·c++·算法·多线程
黛色正浓11 小时前
leetCode-热题100-普通数组合集(JavaScript)
java·数据结构·算法
元亓亓亓11 小时前
LeetCode热题100--5. 最长回文子串--中等
linux·算法·leetcode
千金裘换酒11 小时前
LeetCode 环形链表+升级版环形链表
算法·leetcode·链表
小鸡吃米…11 小时前
机器学习中的随机森林算法
算法·随机森林·机器学习
霁月中12 小时前
[Codeforces Round 1065 (Div. 3)](A-D,F)
算法
世洋Blog12 小时前
算法导论-分治法和合并(Merge)排序
算法
源代码•宸12 小时前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
l1t12 小时前
快速加载CSV文件到数据库的工具pg_csv_loader
数据库·算法
yugi98783812 小时前
基于Matlab的晴空指数计算实现
开发语言·算法·matlab