精华内容
下载资源
问答
  • C语言求N个数的最大公约数最小公倍数 一、问题描述:求N个数的最大公约数最小公倍数。 要求:1.程序风格良好(使用自定义注释模板); 2.提供友好的输入输出,并进行输入数据的正确性验证。 二、算法设计 1.运用...

    C语言求N个数的最大公约数和最小公倍数
    一、问题描述:求N个数的最大公约数和最小公倍数。
    要求:1.程序风格良好(使用自定义注释模板);
    2.提供友好的输入输出,并进行输入数据的正确性验证。

    二、算法设计
    1.运用辗转相除法
    2.由两个数求最大公约数和最小公倍数的思路开始设计
    有两个整数:a和b
    (1) 若a%b,余数为c
    (2) 若c=0.则b为两数的最大公约数
    (3) 若c不等于0,则a=b,b=c,继续执行
    3.编译器:DEV-C++

    三、程序流程图

    图1 最大公约数
    图1 最大公约数
    图2 最小公倍数
    图2 最小公倍数

    四、测试截屏
    在这里插入图片描述
    图3.测试部分

    五、调试截屏在这里插入图片描述
    图3 调试部分
    在这里插入图片描述
    图4.调试起点没有选择正确,变量不正确
    在这里插入图片描述
    图5.调试正确

    六、结果显示
    在这里插入图片描述
    图6.结果

    七、总结
    1.在这个题目中,因为以前看到过这道题,但是因为一直想不出如何解决,就搁浅了,在这次的实践中,刚开始有一些眉目,运用辗转相除法求解最大公约数和最小公倍数,但是在写最小公倍数的代码时,不理解和最大公约数的关系,百度了最小公倍数的最大公约数的几种解决方法,并且问了同学,弄清之后才继续编写。
    2.在调试时,刚开始选择调试部分没有弄清如何选择开始的地方,看了网上别人调试的方法,然后并且使用别人的代码自己调了一遍,才弄懂了,然后运用到这次的代码中。
    https://jingyan.baidu.com/article/c33e3f48e0e01eea15cbb593.html
    3. 通过这些问题,也让我看出来自己在哪块不是很熟练,知识掌握得不是很好,通过解决这次程序的问题,也让我巩固了这方面的知识,虽然每次都会遇到好多问题,但是,解决好问题,我们就有很大的收获,相信自己的编程会越来越好。

    八、代码

    
    ```c
    //求N个数的最大公约数和最小公倍数
    //2020.3.30
    // GSQ
    #include <stdio.h>  
    #include <math.h>
    int gcd (int a,int b)  //自定义函数gcd求最大公约数 
    {
        int temp;
        if(a<b){     //将大的数排在前面 
            temp=a;
            a=b;
            b=temp;
        }
        while(a%b!=0){         //一直循环直到余数为0 
            temp=a%b; 
            a=b;                     // 不断取除数 作为a
            b=temp;                    //不断取余数 作为b                   
        }
        return b;                  
    }
    int lcm(int a,int b){
        int result=(a*b)/(gcd(a,b));
        return result;
    }    
    int main(){
    int t;
    printf("请输入你需要的整数个数:");
    scanf("%d",&t);
    int i,x,y;
    printf("整数为:");
    scanf("%d",&x);
    int gcd1=x,lcm1=x;
    for(i=1;i<t;i++){
        scanf("%d",&y);
        gcd1=gcd(gcd1,y);
        lcm1=lcm(lcm1,y);
    }
    printf("最大公约数和最小公倍数为:"); 
    printf("%d %d",gcd1,lcm1);
    } 
    
    
    
    展开全文
  • C语言求n个和的所有方法,循环法,迭代法,数学数列法等等
  • 斐波拉契数是指一个数组中从第三个起,一个数等于他前两位数的和,由这样的有序数列叫斐波拉契数列。例如 //1 2 3 5 8 13 21 34 55 89 这就是1-10的斐波拉契数。 而在算法中如何求得斐波拉契数需要知道最基本的定义...

    斐波拉契数是指一个数组中从第三个起,一个数等于他前两位数的和,由这样的有序数列叫斐波拉契数列。例如  //1 2 3 5 8 13 21 34 55 89   这就是1-10的斐波拉契数。

    而在算法中如何求得斐波拉契数需要知道最基本的定义,然后再写算法。

    在斐波拉契数中,第一和第二位的元素是固定的,第三位和以后的位数是由前两位相加所得,算法思路是  先判断输入的数是否是1 和2 如果是,直接返回应有的值,在大于三后,则定义三个变量,先将后前两个变量的值赋给地三个变量,作为最后的返回值,然后将前两个变量的值和第三个变量的值进行交换,为下一轮的循环做准备,如果下一轮的 i 值还是大于2,则继续进行循环,知道等于2,完成第n个斐波拉契数的查找。

    #include<stdio.h>
    int fibe(int num)
    {
    	int sub1 = 1;
    	int sub2 = 2;
    	int ant = 0;
    	int i = 0;
    	if (num == 1)
    		return 1;
    	if (num == 2)
    		return 2;
    	if (num>2)
    	{
    		for (i = num; i > 2; i--)
    		{
    			ant = sub1 + sub2;
    			sub1 = sub2;
    			sub2 = ant;
    		}
    	}
    	return ant;
    }
    int main()
    {
    	int n = 0;
    	scanf_s("%d", &n);
    	int tmp = 0;
    	tmp = fibe(n);//1 2 3 5 8 13 21 34 55 89 
    	printf("%d\n", tmp);
    	system("pause");
    	return 0;
    }

     

           除了利用这种普通的方式进行斐波拉契数的求取,还可以通过函数递归的方式实现斐波拉契数的求取,思路和上边的方法的思路是一样的,先是判断是否小于3,如果小于3,正常输出,反之进入函数,实现函数递归,

    #include<stdio.h>
    int fibe(num, tmp1,tmp2,fib)
    {
    		if (num > 0)
    		{
    			fib = tmp1 + tmp2;
    			tmp1 = tmp2;
    			tmp2 = fib;
    			num--;
    			return fibe(num, tmp1, tmp2, fib);
    		}
    		else
    		{
    			return fib;
    		}
    }
    int main()
    {
    	int fib = 0;
    	int b = 0;
    	int a = 0;
    	int ant1 = 1;
    	int ant2 = 2;
    	scanf_s("%d", &a);
    	if (a <= 2)
    	{
    		printf("%d", a); 
    	}
    	else
    	{
    		a = a - 2;
    		b = fibe(a, ant1, ant2, fib);
    		printf("%d", b);
    	}
    	system("pause");
    	return 0;//1 2 3 5 8 13 21 34 55 89 
    }
     

     

    展开全文
  • 一、题目名称:求N个数的最大公约数最小公倍数 二、算法设计: 基本要求: 1.构造辗转相除法来求两个数的最大公约数的函数; 2.构造根据求最大公约数来求两个数的最小公倍数的函数; 3.根据公式,可以知道...

    一、题目名称:求N个数的最大公约数和最小公倍数

     

    二、算法设计:

    基本要求:

    1.构造辗转相除法来求两个数的最大公约数的函数;

    2.构造根据求最大公约数来求两个数的最小公倍数的函数;

    3.根据公式,可以知道两个数a,b的乘积等于他们的最大公约数和最小公倍数的积,所以假设他们的最大公约数为c,最小公倍数是d,则d=a*b/c.

    4.构造求n个数的最大公约数的函数和最小公倍数的函数

    方法是for循环调用gcd()和lcm()函数求n个数的最大公约数和最小公倍数。

    5.在主函数中调用ngcd()和nlcm()函数。

    6.输出所求的最大公约数和最小公倍数。

    三、流程图

    五、运行结果

    源代码如下:

     

    #include"stdio.h"
    #include"stdlib.h"
    #pragma warning(disable:4996)//scanf函数错误忽略
    #define N 100
    
    int gcd(int a, int b) //辗转相除法求两个数的最大公约数 
    {
    	int temp;
    	if (a<b){
    		temp = a;
    		a = b;
    		b = temp;
    	}
    	if(b == 0) { return a; }
    	return gcd(b,a%b);
    	
    }
    
    int lcm(int a, int b) //根据最大公约数来求两个数的最小公倍数 
    {
    	
    	return (a*b / gcd(a,b));
    }
    int ngcd(int max[], int n) //求n个数的最大公约数 
    {
    	int a = max[0];
    	int b = max[1];
    	int c = gcd(a, b);
    	for (int i = 2; i<n; i++){
    		c = gcd(c, max[i]);
    	}
    	return c;
    }
    int nlcm(int min[], int n) // 求n个数的最小公倍数
    {
    	int a = min[0];
    	int b = min[1];
    	int c = lcm(a, b);
    	for (int i = 2; i<n; i++){
    		c = lcm(c, min[i]);
    	}
    	return c;
    }
    int main()
    {
    	int a[N];
    	int i = 0;
    	int j = 0;
    	printf("请输入要求最大公约数和最小公倍数的个数: \n");
    	scanf("%d", &j);
    	printf("请输入要求最大公约数和最小公倍数的数字: \n");
    	for (i; i < j; i++){
    		scanf("%d", &a[i]);
    	}
    	printf("最大公约数为%d\n", ngcd(a, j));
    	printf("最小公倍数为%d\n", nlcm(a, j));
    	system("pause");
    	return 0;
    }

     

    展开全文
  • C语言实现求N个数的最大公约数最小公倍数

    千次阅读 多人点赞 2019-03-21 16:05:10
    一、问题描述:求N个数的最大公约数最小公倍数。 要求:1.程序风格良好(使用自定义注释模板); 2.提供友好的输入输出,并进行输入数据的正确性验证。 二、流程图: 最大公约数: 最小公约数: 三、程序实现: //...

    一、问题描述:求N个数的最大公约数和最小公倍数。
    要求:1.程序风格良好(使用自定义注释模板);
    2.提供友好的输入输出,并进行输入数据的正确性验证。
    二、流程图:
    最大公约数:
    在这里插入图片描述
    最小公约数:
    在这里插入图片描述
    三、程序实现:

    //问题描述:求N个数的最大公约数和最小公倍数
    // WanTing Wang 
    // 2019.03
    #include <stdio.h>  
    #include <math.h>
     //辗转相除法 
    int gys(int x,int y){
        int a;
        if(x<y){     //将大的数排在前面 
            a=x;
            x=y;
            y=a;
        }
        while(x%y!=0){         //一直循环直到y是x的因数 
            a=x%y; 
            x=y;                     // 不断取除数 作为x 
            y=a;                    //不断取余数 作为y                        
        }
        return y;                   //当y是x的因数时,y就是最大公因数 
    }
    int gbs(int x,int y){
        int result=(x*y)/(gys(x,y));
        return result;
    }    
    int main(){
    int t;
    scanf("%d",&t);
    int i,x,y;
    scanf("%d",&x);
    int gys1=x,gbs1=x;
    for(i=1;i<t;i++){
        scanf("%d",&y);
        gys1=gys(gys1,y);
        gbs1=gbs(gbs1,y);
    }
    printf("最大公约数和最小公倍数为:"); 
    printf("%d %d",gys1,gbs1);
    } 
    

    四、测试
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • c语言求个数的最大公约数的方法:首先新建一个C语言源程序,并直接输入两个正整数ab;然后取a,b这两个数中的较小值,存放到变量n中;接着从两个数ab中的较小数开始,依次逐个减小1;、最后点击工具栏上方的...
  • C语言求输入字符字母数字个数 问题描述:输入一行字符,统计其中字母个数,数字个数,空格个数。 算法分析:利用while循环遍历玩整个字符串,依次判断字符类型 #include<stdio.h> main() { char ch; ...
  • printf("4、销毁已建立多项式\n"); printf("5、退出\n"); printf("\n"); while(sign!='n') { printf("请选择:"); scanf("%d",&n); switch(n) { case 1: if(pa!=NULL) { printf("已建立两一元多项式,请...
  • 最大公约数,就是较小的一个数的约数同时也能被较大的数整除,把他到最大就可以了。 最小公倍数,就是较大的一个数的倍数(同时也能整除较小的数),最小的。 1、 # include <stdio.h> int ...
  • 递归: #include<stdio.h> int fib(int n){ ...//调用fib函数打印n=5斐波那契 return 0; } 我们可以使用画图来理解递归函数 太大数字算不出来,因为重复计算量太大了。可以使用循环规避重复
  • 输入N个正整数(2<=N<=9) 计算这些数的最大公约数最小公倍数。 要求:不使用函数。</p>
  • C语言 求n的阶乘及阶乘

    多人点赞 2021-04-12 17:53:33
    阶乘,每次乘数依次递增,直到第n个数,因此我们可以设置一个变量result,用于储存每一次运算结果。且每次乘数都依次递增,可以使用for循环语句,所以需引入一个新变量i 来控制for循环。 源代码 输出结果(以5...
  • 个数的最小公倍数最大公约数 输入a,b两个数 输出m,c即为所 #include<stdio.h> int main() { int m,n,q,a,b,c; scanf("%d%d", &a, &b); m = a; n = b; if (n > m) { int z; z ...
  • 题目描述 输入N个(N<=10000)数字,出这N个数字中最大值最小值。...输出包括两个整数,为给定N个数最大值与最小值。 示例1 输入 复制 5 1 2 3 4 5 3 3 7 8 输出 复制 5 1 8 3 ...
  • c语言 整数位数及各位数字之

    千次阅读 2020-03-08 11:04:14
    对于给定正整数 N位数及其各位数字之。 输入格式: 输入在一行中给出一不超过 10 ​9 ​​ 正整数 N。 输出格式: 在一行中输出 N 位数及其各位数字之,中间用一空格隔开。 我答案 #include...
  • C语言 整数位数及各位数字之

    千次阅读 2020-08-27 18:44:07
    对于给定正整数N位数及其各位数字之。 输入格式: 输入在一行中给出一不超过10 ​9 ​​ 正整数N。 输出格式: 在一行中输出N的位数及其各位数字之,中间用一空格隔开。 输入样例: 321 输出...
  • C语言求个数的最小公倍数】

    千次阅读 2020-11-19 00:46:30
    最小公倍数=两数的乘积/最大公约(因)数,解题时先出最大公约数后再出。 ②根据定义进行算法设计。要求任意两正整数的最小公倍数即出一最小的能同时被两整数整除的自然数。 思路: 首先,对于输入的两...
  • C语言个数的最大公约数最小公倍数

    万次阅读 多人点赞 2019-06-19 16:31:03
    C语言个数的最大公约数最小公倍数 个数的最大公约数:“辗转相除法”: 设两数为ab(a>b),用a除以b,得a÷b=商…余数,若余数为0 ,则最大公约数为b;若余数不为0 ,则再用b÷余数, 得b÷余数=商1...
  • c语言求n个整数的和

    千次阅读 2020-03-05 16:06:18
    方法:累加计算 只计算正整数,负数不计算;输入0返回,退出循环 ... printf("请一个个输入数字,按回车确定输入数字\n"); scanf("%d",&n); while(n != 0) { if (n > 0) { sum =...
  • 想要实现输出两个数的最大公约数,可以先选出两个数中小的一个,比方说是b,然后从b数字开始每次减1,分别除ab,这样找到的两个数的共同约数恰好就是最大公约数: #include int main() { int a,b,i = 0,n; ...
  • N个数中挑选M个数出来。利用for循环也可以处理,但是可拓展性不强,于是写这个模板供以后参考。两个函数全局变量可以直接用。代码:#include#include#define N 10 //被选择数目#define M 5 //要选出来数目...
  • 一、个数的最大公约数有两种方法 1、差法 对于传入的两个数,用较大的数减去较小的数,然后拿差与较小的数相比,若是相等,则这个数就是最大公约数。否则,对于差较小的数再次重复上述的过程。 关于算法...
  • 第二行有 n 个数,为给定的 n 个数,每个数的绝对值都小于 10000。 如输入: Entern:5 -159322 输出 max=32 min=-1 sum=47 #include<stdio.h> #include<stdlib.h> #define MAXINE 10000 int main...
  • 第二行有 n 个数,为给定的 n 个数,每个数的绝对值都小于 10000。 如输入: Enter n:5 -1 5 9 32 2 输出 max=32 min=-1 sum=47 #include<stdio.h> int main() { int a[10000]; int i,n,sum=0,min=10000,...
  • C语言有很多预编译关键字,如#if、#include、#else……,所有以#开头的的关键字都属于这一类,此处讨论#define关键字#define核心就是“替换”如#define MAXLEN (int)20 语句,在代码中凡是遇到MAXLEN字符串都用,...
  • 个数m和n的最大公约数c语言

    千次阅读 2020-10-05 21:59:06
    #include<stdio.h> int main() { int m,n,r,t; scanf("%d %d",&... printf("%d%d最大公约数是\n",m,n); if(m<n) { t=m; m=n; n=t; } while(m%n!=0) { m%n==r; m=n; n=r; ...
  • C语言求个十位数

    千次阅读 2012-12-11 10:48:03
    关于两位数中位数十位数的DEMO 练习基本知识 #include void end_ten_bit_result(int src); int main(void) { int src; printf("请输入一两位数:\n"); do { scanf("%d",&src); if ((src=100)) ...
  • /*给定两个非负整数a,b,其中0,b,000,000,请计算这两个数之间有多少个素数。 输入 第一行是一个整数K(1),表示有多少个样例,每个样例占一行,是两个整数ab,每个整数之间用一个空格隔开。 输出 每行输出一个...
  • 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,450
精华内容 580
关键字:

c语言求n个数的和

c语言 订阅