链接地址:https://www.cnblogs.com/wxgblogs/p/5742618.html
题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
try:
while True:
num=int(raw_input())
L=[[0 for i in range(0)] for j in range(num)]
insert=1;
for i in range(num):
for j in range(i+1):
L[i-j].append(str(insert))
insert=insert+1
for i in range(num):
print ' '.join(L[i])
except:
pass
题目描述
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
/**
* 统计出兔子总数。
*
* @param monthCount 第几个月
* @return 兔子总数
*/
public static int getTotalCount(int monthCount)
{
return 0;
}
while True:
try:
month=int(raw_input())
if month<3:
print 1
else:
a=1
b=1
for i in range(3,month+1):
a,b=b,a+b
print b
except:
break
题目描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
def data_deal(name):
count = 0
count_list = []
list1 = list(range(1,27))[::-1]
for i in range(len(name)):
num = name[i]
count_list.append(name.count(num))
count_list.sort(reverse=True) # 关键是要求出每个字符出现的次数
list2 = []
for i in range(len(count_list)):
num = count_list[i]
if num > 1 and (num in list2):
continue
if num > 1:
n = int(count_list.count(num) / num) # 采用该公式就不需要将字符出现的次数和是哪个字符一一对应了
for j in range(n):
list2.append(num)
else:
list2.append(1)
for i in range(len(list2)):
num = list2[i]
count += num * list1[i]
return count
while 1:
try:
n = int(input())
name_list = []
while 1:
name = input()
name_list.append(name)
if len(name_list) == n:
break
for name in name_list:
print(data_deal(name))
except:
break
采用中心扩展法,链接地址:https://www.cnblogs.com/baiyb/p/8326216.html
采用动态规划法,链接地址:https://blog.csdn.net/Tianchi_M/article/details/82691277
采用二分法,链接地址:https://blog.csdn.net/wenlyq/article/details/87556902
使用贪心选择 + 二分查找算法,链接地址:https://blog.csdn.net/lw_power/article/details/80758674
题目描述
现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;
每种砝码对应的数量为x1,x2,x3…xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。
注:称重重量包括0
方法原型:public static int fama(int n, int[] weight, int[] nums)
链接:https://www.nowcoder.com/questionTerminal/f9a4c19050fc477e9e27eb75f3bfd49c
来源:牛客网
while True:
try:
a = int(input())
weight = list(map(int,input().split()))
count = list(map(int,input().split()))
fm,temp,ans = [],[],[0]
# 将所有砝码放入列表
for i in range(a):
for j in range(count[i]):
fm.append(weight[i])
# 称重
for i in fm:
temp = set(ans)
for j in temp:
ans.append(j+i)
# 去重
print(len(set(ans)))
except:
break