1、输入一个十进制的数,把它转成八进制。类似的把十进制转成16进制,把十六进制转变为十进制等。
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6667026
#include <stdio.h>
int main(void)
{
int num, a[100], i, j;
i = 0;
scanf("%d" , &num);
while(num != 0)
{
a[i++] = num % 8;
num /= 8;
}
if(i == 0)
printf("0\n");
else
{
for(j = i - 1; j >= 0; --j)
printf("%d", a[j]);
printf("\n");
}
return 0;
}
2、输入两个非常大的整数(完全超出了int、long的表示范围),这个整数的长度可能超过100位,计算并输出这两个数相加的结果。(HDU acm 1002 用string处理比较好)
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6667026
#include <stdio.h>
#include <string.h>
int main(void)
{
int temp, i, j, k, len1, len2, m, sum[1010];
char a[1010], b[1010], c[1010];
scanf("%s %s", a, b);
len1 = strlen(a);
len2 = strlen(b);
if(len1 < len2) //交换两个字符串,确保第一个字符串的长度不小于第二个字符串
{
strcpy(c, b);
strcpy(b, a);
strcpy(a, c);
m = len2, len2 = len1, len1 = m;
}
k = m = 0;
//从两个数的低位开始,手工模拟加法,逐位相加
for(i =