精华内容
下载资源
问答
  • L1-009 N个数求和 (20分) 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤100)。随后一行...

    L1-009 N个数求和 (20分)

    本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。

    输入格式:
    输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。

    输出格式:
    输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。

    输入样例1:
    5
    2/5 4/15 1/30 -2/60 8/3
    输出样例1:
    3 1/3
    输入样例2:
    2
    4/3 2/3
    输出样例2:
    2
    输入样例3:
    3
    1/3 -1/6 1/8
    输出样例3:
    7/24

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int N;
        int i,j;
        int a[100],b[100];
        int k,p,q,m;
        int sum=0;
        int flag=0;
        int n=1;
        scanf("%d",&N);
        for(i=0;i<N;i++)
        {
            scanf("%d/%d",&a[i],&b[i]);
        }
        k=b[0];
        for(i=1;i<n;i++)
        {
        	if(k<b[i])
        	{
        		k=b[i];
    		}
    	}
        for(;;)
        {
        	n++;
        	for(j=0;j<N;j++)
        	{
        		if(k%b[j]==0)
        		{
        			flag++;
    			}
    		}
    		if(flag==N)
    		{
    			break; 
    		}
    		flag=0;
    		k=n*b[i];
    	}
    
        for(i=0;i<N;i++)
        {
            p=k/b[i];
            a[i]=a[i]*p;
        }
        for(i=0;i<N;i++)
        {
            sum=sum+a[i];
        }
        m=fabs(sum);
        
        if(sum==0)
        {
        	printf("0\n");
    	}
    	
        else
        {
        	for(j=m;j>=1;j--)
        	{
        	    if(m%j==0&&k%j==0)
            	{
                	m=m/j;
                	k=k/j;
                	break;
            	}
        	}
        	if(m<k)
        	{
            	if(sum>0)
                	printf("%d/%d\n",m,k);
            	else
                	printf("-%d/%d\n",m,k);
        	}
        	else
        	{
            	if(m%k==0)
            	{
                	if(sum>0)
                    	printf("%d\n",m/k);
                	else
                    	printf("-%d\n",m/k);
            	}
            	else
            	{
                	i=m/k;
                	j=m%k;
                	if(sum>0)
                    	printf("%d %d/%d",i,j,k);
                	else
                    	printf("-%d %d/%d",i,j,k);
            	}
        	}
        }
    }
    

    这个测试点真的快疯了(有没有砸桌子)求解
    在这里插入图片描述

    展开全文
  • 输出一个整数,即n个数的和。输出单独占一行。 样例输入 3 7 3 2 样例输出 12 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n,i,s=0; scanf("%d",&n); int...

    题目描述
    输入一个整数n和n个整数,输出这n个整数的和。
    输入
    输入有两行:第一行是一个正整数n,第二行是n个整数。
    输出
    输出一个整数,即n个数的和。输出单独占一行。
    样例输入
    3
    7 3 2
    样例输出
    12

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    int main()
    {
      int n,i,s=0;
      scanf("%d",&n);
      int a[n];
      for(i=0;i<n;i++)
        scanf("%d",&a[i]);
      for(i=0;i<n;i++)
        s+=a[i];
      printf("%d",s);
    }
    

    客官记得一键三连啊!


    展开全文
  • 7-79 N个数求和C语言

    千次阅读 2020-05-24 15:02:55
    本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给...

    本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。

    输入格式:

    输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。

    输出格式:

    输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。

    输入样例1:

    5
    2/5 4/15 1/30 -2/60 8/3
    

    输出样例1:

    3 1/3
    

    输入样例2:

    2
    4/3 2/3
    

    输出样例2:

    2
    

    输入样例3:

    3
    1/3 -1/6 1/8
    

    输出样例3:

    7/24
    
    #include<stdio.h>
    #include<math.h>
    long int mygcd(long int a,long int b);
    void simplify(long int *up,long int *down,long int gcd);
    int main()
    {
    	int N;
    	scanf("%d",&N);
    	long int up[N],down[N];	 
    	for(int i=0;i<N;i++)	//输入分子、分母 
    	{
    		scanf("%ld/%ld",&up[i],&down[i]);
    	}
    	long int gcd;
    	long int up1 = up[0]; 
    	long int down1 = down[0];	
    	simplify(&up1, &down1, mygcd(up1,down1));
    	for(int i=1; i<N;i++) 
    	{
    		if(up1!=0)	//前i-1项和不为0时 
    		{
    			long int temp;
    			simplify(&up1, &down1, mygcd(up1,down1));	 //对前i-1项和进行化简 
    			gcd = mygcd(down1,down[i]);		//求前i-1项和的分母与第i项分母的最大公约数 
    			temp = down1;
    			down1 = down1*down[i]/gcd;		//求前i-1项和的分母与第i项分母的最小公倍数
    			up1 *= down1/temp;		//分子分母同时放大 
    			up[i] *= down1/down[i];
    			up1 += up[i];
    		}
    		else		//前i-1项和为0 
    		{
    			down1 = down[i];
    			up1 = up[i];
    		}
    	}
    	simplify(&up1, &down1, mygcd(up1,down1));	//对最后一次计算结果进行化简
    	if(up1==0)		//打印结果 
    	{
    		printf("0");
    	}
    	else if(up1/down1==0)
    	{
    		printf("%ld/%ld",up1,down1);
    	}
    	else if(up1%down1==0)
    	{
    		printf("%ld",up1/down1);
    	}
    	else
    	{
    		printf("%ld %ld/%ld",up1/down1,up1%down1,down1);
    	}
    	return 0;
    }
    
    long int mygcd(long int a,long int b)	//计算最大公约数 
    {
    	a = fabs(a);	//考虑a为负数 
    	long int r;
    	do
    	{
    		r = a%b;
    		a = b;
    		b = r;
    	}while(r!=0);
    	return a;
    }
    
    void simplify(long int *up,long int *down,long int gcd)	//分数化简 
    {
    	*up /= gcd;
    	*down /= gcd;
    }
    
    展开全文
  • L1-009 N个数求和 (20分) 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤100)。随后一行...

    L1-009 N个数求和 (20分)

    本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。
    输入格式:

    输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
    输出格式:

    输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。
    输入样例1:

    5
    2/5 4/15 1/30 -2/60 8/3

    输出样例1:

    3 1/3

    输入样例2:

    2
    4/3 2/3

    输出样例2:

    2

    输入样例3:

    3
    1/3 -1/6 1/8

    输出样例3:

    7/24

    代码如下

    #include <stdio.h>
    int gcd(long long int p, long long int q)
    {
    	if (p%q == 0)
    	{
    		return q;
    	}
    	else
    		return gcd(q, p%q);
    }
    
    
    int main()
    {
    	long long int a, b,suma = 0, sumb = 1,m;
    	int n, i;
    	scanf("%d", &n);
    	for (i = 0; i < n; i++)
    	{
    		scanf("%lld/%lld", &a, &b);
    		suma *= b;//分子乘以第二个分式的分母
    		suma = (suma + a*sumb);//分子的和
    		sumb *= b;//分母通分
    		m = gcd(suma, sumb);//约去公约数`在这里插入代码片`
    		suma /= m;
    		sumb /= m;
    	}
    	if (suma&&(suma/sumb==0))
    		printf("%lld/%lld\n", suma, sumb);
    	else if (suma%sumb==0)
    		printf("%lld\n", suma / sumb);
    	else
    	{
    		printf("%lld %lld/%lld\n",suma/sumb,suma%sumb,sumb);
    	}
    }
    

    gcd函数采用的辗转相除法,这样做的好处是,不需要管理传入参数p和q的大小,例如6/9进入循环后会自己反转变为9/6.

    展开全文
  • L1-009 N个数求和 (20分)(C语言) 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤100)。...
  • 输出包含一个整数,即n个数中的最大值,单独占一行。 样例输入 Copy 4 3 7 5 6`` 样例输出 Copy 7 #include<stdio.h> int main() { int i,n,sum=0,mid; scanf("%d\n",&n); for(i=1;i<=n;i++) { ...
  • L1-009 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤100)。...
  • 对于每组输入,在一行输出n个数的和(保证和不会超出int类型的范围)! 样例输入 Copy 2 3 1 2 3 4 -1 0 -19 22 样例输出 Copy 6 2 提示 初做多实例测试,注意累加和变量赋初值的位置。 #include<stdio.h> #...
  • 输入在一行中给出两正整数M和N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。 输入样例: 10 31 输出样例: 7 143 C语言源程序: #include<stdio.h> #...
  • L1-009 N个数求和-pintia

    2020-10-01 21:30:30
    L1-009 N个数求和-pintia 本题来自pintia,点击这里查看原题 本题是用C语言写的,代码可能算是比较复杂的,但解题思路可能是最容易理解的。 题目要求: 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是...
  • ZZULIOJ 1039: n个数求和

    2020-06-23 21:13:59
    输出一个整数,即n个数的和。输出单独占一行。 样例输入 3 7 3 2 样例输出 12 (C语言代码) #include<stdio.h> int main() { int n,x,sum=0; scanf("%d",&n); while(n--) { scanf("%d",&x); ...
  • 求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入 输入 n 输出 Sn的值 #include<stdio.h> int main() { int n,sum=0; int temp=0; scanf("%...
  • C语言(20)素数求和问题

    千次阅读 2017-08-10 10:05:17
    1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和输入 第一行给出整数M(0&lt;M&lt;10)代表多少组测试数据 每组测试数据第一行给你N,代表该组测试数据的数量。 接下来的N个数为要测试...
  • #include<stdio.h> #include<stdlib.h> //题目:2/1,3/2,5/3,8/5,13/8,21/13...求出这数列的前20项之和 int main(){ ...int i,n;...printf("请输入相加项:"); scanf("%d",&n); ...
  • 现在给你N个数(0 输入 第一行给出整数M(0 每组测试数据第一行给你N,代表该组测试数据的数量。 接下来的N个数为要测试的数据,每个数小于1000 输出 每组测试数据结果占一行,输出给出的测试数据的...
  • C语言 有规律的数列求和 分数序列数列求和例题 题目: 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13… 求出这数列的前N项之和,保留两位小数。 输入N 输出: 数列前N项和 代码如下: #include<stdio.h&...
  • 题目:输入N,实现N个规律数求和,如1/1+2/3+3/5+4/7+4/9+…… 代码: int main() {  int N,i;  double sum,temp;  sum=0;  printf("please input the numberN\n");  scanf("%d",&N);  for(i=1;i ...
  • printf"请输入n的值:\n";scanf("%d",&n);printf"请输入%d个数:\n",n;for(i=0;i{scanf("%d",&ai); //录入数据。sum=sum+ai; //直接求和,方便后面求平均值 } for(i=0;ifor(j=i+1...
  • 题自CCF 201512-1《求和》 问题描述  给定一十进制整数n,输出n的各位数字之和。 输入格式  输入整数n。 输出格式  输出一整数,表示答案。 样例输入 20151220 样例输出 13 样例说明  20151220的...
  • C语言数列求和

    2020-02-12 10:02:54
    Description 数列求和是一类常见的问题,本题有一定的代表性: 求s=a+aa+aaa+aaaa+……+aa…aa(n位) ...输出对n个数完成求和运算后的结果。 比如a=3,n=6时,s=3+33+333+3333+33333+333333 Sample Input...
  • C语言 阶乘求和

    2021-01-25 21:32:37
    C语言 阶乘求和 题目: 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一数字(n不超过20)。 输入n 输出: Sn的值 代码如下: #include<stdio.h> int main() { int n,i; long int m=1,Sn=0; scanf("%d...
  • C语言统计素数并求和

    千次阅读 2020-08-10 19:21:45
    统计素数并求和 统计给定整数M和N区间内...本题中采用的判断素数的方法:判断一个数m能不能被 2 ~√m间任一整数整除,如果不能m 必定是素数。 #include "stdio.h" #include "math.h" void ss(int p ,int m) { int i,j
  • c语言 统计素数并求和

    千次阅读 2020-03-07 23:07:10
    输入在一行中给出两正整数 M 和 N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出 M 和 N 区间内素数的个数以及它们的和,数字间以空格分隔。 我的答案: #include <stdio.h> int main() { int count = 0,...
  • C语言Sn的公式求和

    2020-01-28 16:11:20
    求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入输入 n 输出 Sn的值 样例输入 5 样例输出 24690 #include<stdio.h> int main...
  • C语言实现连续自然数求和

    千次阅读 2020-06-05 14:20:29
    需求: 提示用户输入正整数Num,计算 1+2+ ...+ Num的和 代码: #include <... printf("请输入正整数: \n"); scanf("%d",&num); continue; //跳出本次循环,重新下一次循环 } //
  • 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。 输入格式: 输入数字A与非负整数N。 输出格式: 输出其N项数列之和S的值。 输入...
  • C语言 ACM 求和

    2020-05-31 17:23:33
    //加数个数 变量 int num; //输入的每个数据 int sum = 0; //累计求得和 while(scanf("%d",&n)!=EOF)//在文件的结尾(CTRL+Z可以终止这个循环) { sum = 0; //初始化为0 while(n--) //累计...
  • C语言训练】阶乘求和

    万次阅读 多人点赞 2019-07-26 23:01:59
    之值,其中n是一数字(n不超过20)。 输入 n 输出 Sn的值 样例输入 5 样例输出 153 代码详解 #include<stdio.h> int main() { long long a = 1, sum = 0;//因为最后值可能会很大所以给和定义...
  • #include ...//我想输入一串用空格隔开隔开的单个数字,然后求和,但我发现我的数字对不到0.0,就只有第一个数能对到![图片说明](https://img-ask.csdn.net/upload/202010/25/1603590257_553214.png)

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 237
精华内容 94
关键字:

c语言输入n个数求和

c语言 订阅