专栏名称: 见白头
今天看啥  ›  专栏  ›  见白头

周总2

见白头  · CSDN  ·  · 2020-12-05 19:15

文章预览

本周一直在洛谷上刷题,通过刷题来学习与巩固c语言以及python所学习的知识,于是便将几道比较有意思的题目整理出来。

一丶冒泡排序

这周通过做题而去学习了冒泡排序

冒泡排序是一种计算机科学领域的较简单基础的排序算法。其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。

上代码

#include<stdio.h>
int main(void)
{
	int a[10],i,j;
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<2;i++)
	{
		for(j=0;j<3-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	for(i=0;i<3;i++)
	{
		printf("%d ",a[i]);
	}
}

本周学习了循环与数组并通过算法题来巩固了这些基础知识,在学c的同时也将python更好的巩固了一下。

二丶关于鸡兔同笼问题使用python的不同解法。

1.公式法(通过解方程的公式推导直接求解)。

tou=int(input("请输入头的数量="))
tui=int(input("请输入腿的数量="))
y=(tui-2*tou)/2
x=tou-y
print("鸡的数量为=%d"%x)
print("兔子的数量为=%d"%y)

2 .for循环法

a=int(input("头:"))
b=int(input("腿:"))
for i in range(0,a+1):
    tu=i
    ji=a-i
    if tu*4+ji*2==b:
        print("兔子:",tu)
        print("鸡:",ji)

三丶求最大蓄水量。

a=[1,8,6,2,5,4,8,3,7]
water=[]#该列表用于记录所有可能的蓄水量
for i in range(len(a)-1):#从第一个数字取到倒数第二个数字
    b=a[i]
    for j in range(i+1,len(a)):#从上一个循环取到数字的下一个数字一直到列表最后一个数字
        #两次循环中所取列表数字谁比较小就将谁作为容器的高度
        if a[i]<=a[j]:
            water.append(a[i]*(j-i))
        else:
            water.append(a[j]*(j-i))
print(max(water))#选出最大的蓄水量

………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览