加算のL1-009 N数(20分)

この質問は私が最初にすべての、私はいわゆる実現、多くの発見考えるようになった、プログラム内容のアイデアは、コードだけで実現され、プログラムは直接コードを演奏し始めるのではなく、書き込みや設計思想に多くの時間がどうあるべきかを、あること、難しいことではありませんそれほど重要なポイントの一つは、
第二、自身が注意を払うに注意、必要性を向上させ、むしろマングよりも、データサイズを分析する必要がある対象にあれば、このような問題を心配する(ここで私は(エスケープ)が主要な損失を被りました)分母の共通分母や方法を乗じて得たすべてのデータを使用して、非常に不合理なので、それはそれから数100、100誇張されたオペレータを持っている場合!(階乗)のロット番号(9.3326215443944152681699238856267e + 157)とINT十分、LONGLONGその逆;(?などダブル4.94065645841246544E-324は1.797693E + 308することができる場合があります)
第三に、それが機能する必要があります。

#include<stdio.h>

int gcd(int a,int b)
{
	int rema;//remainder
	while(b!=0)
	{
		rema=a%b;
		a=b;
		b=rema; 
	}
	return a;
}

int main(void)
{
    int n,i=0,a[105]={0},b[105]={0};
    //intput and process figures;
    scanf("%d",&n);
    scanf("%d/%d",&a[i],&b[i]);         
    int nume=a[i],deno=b[i],div=0;
    for(i=1;i<n;i++)
    {
        scanf("%d/%d",&a[i],&b[i]);
        nume = nume * b[i] + a[i] * deno;
        deno = b[i] * deno;         //"numerator/denominator" is called a fraction, integer is relative;
        div = gcd(nume,deno);
        deno /= div,nume /= div;
    }
    if(nume%deno==0)printf("%d", nume/deno);
    else 
    {
        if(nume>deno){
            printf("%d %d/%d",nume/deno, nume-nume/deno*deno, deno);

        }
        else printf("%d/%d", nume, deno);
    }
    //output
}
公開された10元の記事 ウォンの賞賛4 ビュー270

おすすめ

転載: blog.csdn.net/dylan_sjc/article/details/103978557