简单算法
int x, n, i, j, b; char buf[10]; sprintf(buf, “%d”, x); n = strlen(buf); //冒泡排序 for(i = 0; i < n; i++) for( j = i + 1; j <n; j++) if(buf[i] > buf[j]) { char t = buf[i];buf[i]=buf[j];buf[j]=t;} sscanf(buf, “%d”, &b); //字符串反转 for(i = 0; i < n / 2; i++) { char t = buf[i]; buf[i]=buf[n-1-i]; buf[n-1-i]=t; } //位运算 const int MAXD = 20 int s[ 1 << MAXD]; int n = (1 << MAXD) - 1
//求最大公约数
int gcd(int a, int b) { if(b == 0) return a; gcd(b,a%b); }
int gcd(int a,int b) { return b?gcd(b,a%b):a; }
求最小公倍数的时候 先除防溢出
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步