周总2
程序员文章站
2022-03-04 23:08:40
...
本周一直在洛谷上刷题,通过刷题来学习与巩固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))#选出最大的蓄水量
推荐阅读