当前位置:首页>java>【每日编程-30期】ZK上机题(一)

【每日编程-30期】ZK上机题(一)

  • 2026-10-21 13:26:40
【每日编程-30期】ZK上机题(一)
中科大上机题(一)

每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399

最大公约数:输入n个数,求出这n个数的最小值,最大值以及他们的最大公约数。

输入格式:

第一行输入n

输入n个数(以空格隔开)

输出格式:

最小值    最大值    最大公约数

输入样例:

34 6 8

输出样例:

4 8 4
解决方法:

(1)算法的基本思想:

需要用到基本的数学思维求得最大公约数。

最大公约数的求法:这里采用辗转相除法来求得最大公约数

Tips:同样要掌握最小公倍数的求法。

这里给出示例代码:仅供学习。

最小公倍数=两数的乘积/最大公约数。

(2)代码实现:

#include<iostream>#include<math.h>usingnamespacestd;intfindMax(int *arr, int n){int max = arr[0];for (int i = 1; i < n; i++)    {if (arr[i] > max)            max = arr[i];    }cout << max << " ";return max;}intfindMin(int *arr, int n){int min = arr[0];for (int i = 1; i < n; i++)if (arr[i] < min)            min = arr[i];cout << min << " ";return min;}//采用辗转相除法求解最大公约数intdivision(int a, int b){//首先确定a,b的大小if (b > a)    {int temp = a;        a = b;        b = temp;    }//一直求余数,直到余数为0;while (true)    {int p = a % b;if (p == 0)return b;else        {            a = b;            b = p;        }    }}//最小公倍数intmultiNum(int a, int b){int sp = division(a, b);return a * b / sp;}intmain(){cout << "输入数据的个数:";int n = 0;cin >> n;int *arr = newint[n];for (int i = 0; i < n; i++)cin >> arr[i];int a = findMin(arr, n);int b = findMax(arr, n);int spilt = division(a, b);cout << spilt << endl;int sp = multiNum(a, b);cout << sp << endl;    system("pause");return0;}
明日预告:中科大上机题(二)

火车票订购:火车经过X站,火车最大载客人数为m,有n个订票请求,请求订购从a站到b站的k张票,若能满足订购要求则输出1,否则输出0.第一行有两个数,分别是n,m,接下来有n行,每行三个数分别为a,b,k.

输入格式:

第一行有两个数,分别是n,m,接下来有n行,每行三个数分别为a,b,k.

输出格式:

满足订购要求输出1,否则输出0

输入样例:

5 104 10 98 12 29 12 114 20 830 300 15

输出样例:

10110

最新文章

随机文章