No.1 比较大小
#include<stdio.h>
#include<string.h>
int main()
{
int n, m;
char a[100000], b[100000];
while(scanf("%s %s", a, b) != EOF)
{
n = strlen(a);
m = strlen(b);/*能直接判断位数比较出来直接判断位数*/
if(n > m) printf("a>b\n");
else if(n < m) printf("a<b\n");
else
{
if(strcmp(a,b) > 0) printf("a>b\n");
else if(strcmp(a,b) < 0) printf("a<b\n");
else printf("a=b\n");
}
}
return 0;
}
No.2 相除
#include<stdio.h>
int main()
{
int a, b, integer, lage, i;
int c[20];
while(~scanf("%d %d", &a, &b))
{
if(a == 0 && b == 0) break;
lage = 0;
integer = a / b;
a = (a % b) * 10;
while(a)
{
c[lage++] = a / b;
a = (a % b) * 10;
}
printf("%d", integer);
if(lage > 0)
{
printf(".");
for(i = 0; i < lage; i++)
{
printf("%d", c[i]);
}
}
printf("\n");
}
return 0;
}
No.3 相乘
#include <stdio.h>
int main() {
// 数组 a 的大小能存下极限值(400位的数)即可
// len 表示当前大数的长度
// carry 表示进位数
// product 表示当前位做乘法运算后的乘积
int a[100], n, num, i, len, carry, product;
while(~ scanf("%d", &n)) {
len = 1;
a[0] = 1;
while(n--) {
scanf("%d", &num);
carry = 0;
for(i=0; i<len; ++i) {
product = a[i]*num + carry; // 计算当前位的乘积
a[i] = product % 10000; // 进位后的值通过乘积取余 10000 得到
carry = product / 10000; // 进位数通过乘积除以 10000 得到
}
a[i] = carry;
if(carry) len++; // 计算完毕后如果存在进位,则长度+1
}
printf("%d", a[len-1]);
for(i=len-2; i>=0; --i) {
printf("%04d", a[i]); // 不足四位数的前面补 0 来输出
}
printf("\n");
}
return 0;
}