ACM常考算法
l1=strlen(s1);
for (i=0;i<l1-1;i++) t[i]=t[i+1]; t[l1-1]='\0'; goto loop; }
if (strlen(t)==0) {t[0]='0';t[1]='\0';} }
6.任意进制转换
语法:conversion(char s1[],char s2[],long d1,long d2); 参数:
s[]: 原进制数字,用字符串表示 s2[]: 转换结果,用字符串表示 d1: 原进制数
d2: 需要转换到的进制数 返回
null 值: 注意: 源程序:
高于9的位数用大写'A'~'Z'表示,2~16位进制通过验证
void conversion(char s[],char s2[],long d1,long d2) {
long i,j,t,num; char c; num=0;
for (i=0;s[i]!='\0';i++) {
if (s[i]<='9'&&s[i]>='0') t=s[i]-'0';else t=s[i]-'A'+10;
num=num*d1+t; } i=0; while(1) {
t=num%d2;
if (t<=9) s2[i]=t+'0';else s2[i]=t+'A'-10; num/=d2;
if (num==0)break; i++; }
for (j=0;j<i/2;j++)
{c=s2[j];s2[j]=s[i-j];s2[i-j]=c;} s2[i+1]='\0'; }
7.最大公约数、最小公倍数