2023年贵州省中小学信息技术教师培训作业(5月15日)

刘彭

温馨提示:这篇文章已超过557天没有更新,请注意相关的内容是否还可用!

1. 计算组合数

计算组合数C(m,n)的值(n<=m<=10)。

输入一行,两个整数m,n

输出组合数

样例输入

8 5

样例输出

56


#include<iostream> 
using namespace std;
int js(int n);
int main()
{
int m,n,result;
cin>>m>>n;
result=js(m)/(js(m-n)*js(n));
cout<<result;
return 0;
}
int js(int n)
{
int i,item;
item=1;
for(i=1;i<=n;i++)
{
item=item*i;
}
return item;}

2.冒泡排序

用冒泡法对数组元素按由小到大排序。

输入第一行为数组元素个数n,n不大于100。第二行为n个数组元素。

输出从小到大排序后的数组元素,元素之间用“,”分隔。

样例输入

10

11 4 55 6 77 8 9 0 7 1

样例输出

0,1,4,6,7,8,9,11,55,77

#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n);
int main() {
    int n;
    cin >> n;
    int arr[100];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    // 调用冒泡排序函数对数组元素排序
    bubbleSort(arr, n);
    for (int i = 0; i < n; i++) {
        cout << arr[i];
        if (i != n - 1) {
            cout << ",";
        }
    }
    cout << endl;
    return 0;
}
void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换arr[j]和arr[j+1]
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

3. 两个数的最小公倍数

输入两个正整数,编程计算两个数的最小公倍数。

输入两个整数,输出最小公倍数。

样例输入

12 18

样例输出

36

#include <iostream>
using namespace std;
// 函数声明
int gcd(int a, int b);
int lcm(int a, int b);
int main() {
    int num1, num2;
    cin >> num1 >> num2;
    // 计算最小公倍数
    int result = lcm(num1, num2);
    cout  << result << endl;
    return 0;
}
// 计算最大公约数
int gcd(int a, int b) {
    if (b == 0)
        return a;
    else
        return gcd(b, a % b);
}
// 计算最小公倍数
int lcm(int a, int b) {
    return (a * b) / gcd(a, b);
}

4. 进制转换

编程输入十进制整数N(N:-32767~32767),请输出它对应的二进制、八进制、十六进制数。

输入十进制整数N(N:-32767~32767),输出转成的2进制数、8进制数、16进制数,用空格分隔。

样例输入 1

12

样例输出 1

1100 14 C

样例输入 2

-15

样例输出 2

-1111 -17 -F

#include <iostream>
#include <cstdlib>
using namespace std;
char ch[6]={'A','B','C','D','E','F'};
void turndata(int x,int n)
{
	int a[13],k=0;
	if(x<0)
	{
		cout<<"-";
		x=abs(x);
	}
	do{
		k++;
		a[k]=x%n;
		x=x/n;
	}while (x!=0);
	for(int i=k;i>=1;i--)
	{
		if(a[i]<10)
		{
			cout<<a[i];
		}
		else
		{
			cout<<ch[a[i]-10];
		}
	}
	cout<<" ";
}
 int main()
 {
 	int x;
 	cin>>x;
 	turndata(x,2);
 	turndata(x,8);
 	turndata(x,16);
 	return 0;
 }


文章版权声明:除非注明,否则均为金沙人原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,1347人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码