橙白oj18训练作业2-题解、代码

http://oj.acm-icpc.top/

a题:三个数字排序

可以利用sort函数排序,或者自己想清楚逻辑自己写,我给出一个正确逻辑

(拓展冒泡和其他排序参考https://blog.csdn.net/hebtu666/article/details/81434236)

a,b,c=input().split(" ")
a,b,c=int(a),int(b),int(c)
if a>b:a,b=b,a
if b>c:b,c=c,b
if a>b:a,b=b,a
print(a,b,c)

b题:判断三角形能否组成

很简单,直接判断即可

while 1:
    a,b,c=[int(x) for x in input().split()]
    if a==0:
        break
    elif a+b>c and a+c>b and b+c>a:
        print('Great,you are genius!')
    else:
        print('oh,my god!')

c题:把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出。  

利用循环,加上步长,一次性输出。

或者两个循环,不加步长,判断一下再输出即可。

time=int(input())
while 1:
    a=int(input())
    for i in range(1,a+1,2):
        print(i,end=" ")
    print("")
    for j in range(2,a+1,2):
        print(j,end=" ")
    print("")
    time=time-1
    if time==0:
        break

d题:已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。

t=int(input())
while t:
    n,m=input().split()
    if int(m)%2==0:
        a=(int(m)-int(n)*2)/2
        b=int(n)-a
        if a>=0 and b>=0:
            print(int(b),int(a))
    else:
        print('No answer')
    t=t-1

e题:简化版:::找出从自然数1-6中任取3个数的所有组合。

for a in range(6,0,-1):
    for b in range(6,0,-1):
        for c in range(6,0,-1):
            if a>b>c:
                print(str(a)+str(b)+str(c))

任取n个数:

#include
int a[15];
int n,r;
void dfs(int c,int x){
	int i;
	if(x==r+1){
		for(int j=1;j<=r;j++)
			printf("%d",a[j]);
		printf("\n");
	}
	for(i=c;i>0;i--){
		a[x]=i;
		dfs(i-1,x+1);
	}
}
int main(){
	while(scanf("%d%d",&n,&r)==2){
		dfs(n,1);
	}
	return 0;
}

f题:编写一个程序实现将字符串中的所有"you"替换成"we"

利用函数:

while 1:
    a=str(input())
    print(a.replace("you", "we"))

或遍历、判断、替换。

G题:

题目描述

还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

输入

输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。

输出

对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

杨辉三角,就是按照定义来模拟即可。

这里给出python的一点比较神的列表操作

列表生成式知识请看我的python总结里有。

利用定义简单明了的生成每一行杨辉:

for i in range(1,n):
    l=[1]+[int(l[j])+int(l[j+1]) for j in range(len(l)-1)]+[1]

 

你可能感兴趣的:(讲课)