C语言分式连乘问题,求简化+可以输入很大很大的数字

Python015

C语言分式连乘问题,求简化+可以输入很大很大的数字,第1张

你每次乘以一个新的分式之后就进行约分,使你的分式始终保持最简形式,则就可以不需要大整数了。如果实在要用的话VC6.0也可以用64位的整数啊,不过它是用_int64表示(无需添加任何特殊头文件),输出格式则为printf(“%I64d", ...)例如

_int64 a = 98765432198765 * 2

printf("%I64d", a)

不用大整数,程序则可如下做

#include <stdio.h>

int gcd(int x, int y) {

int m, n

m = ((x >y) ? x : y)

n = ((x <= y) ? x : y)

if(m % n == 0) return n

else return gcd(n, m % n)

}

void main( )

{

int a, b, c, x, y, n, i

scanf("%d", &n)

x = 1y = 1

for(i = 0i <ni++) {

scanf("%d%d", &a, &b)

x *= a

y *= b

c = gcd(x, y)

x /= c

y /= c

}

if(y != 1)printf("%d/%d\n", x, y)

elseprintf("%d\n", x)

}

这不就是5!么?

main()

{

int i ,s=1

for(i=1i<=5i++)

s*=i

printf("%d\n,s")

}