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;
}
求最小公倍数的时候 先除防溢出