6. 题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值:
String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入
180
输出
2 2 3 3 5
思路:
1.每找出一个因子就除以这个因子,进行一个循环。
2. 注意相同因子的时候的处理。
input_Num = int(input())
def test(n):
if n == 0 or n == 1 or n == 2:
print(str(n) + ' ')
staNum = 2
li = []
while staNum <= n:
if n % staNum == 0:
li.append(staNum)
n = n // staNum
staNum = 2
continue
staNum += 1
print(' '.join(str(i) for i in li) + ' ')
test(input_Num)
7.题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例1
输入
5.5
输出
6
思路:
1. 本来Python有函数比如四舍五入round()、向上取整math.ceil()、向下取整math.floor();但是round有问题,有时候不会严格四舍五入;
2. 只有转成字符串,分别取整数和小数部分,然后把小数部分的第一个数字进行是否大于5的判断;
3. 最后再把整数部分进1或者保留;
即,关键是转成字符串形式再操作。
input_num = float(input())
def test(n):
int_part = str(n).split('.')[0]
flo_part = str(n).split('.')[1]
if int(flo_part[0]) >= 5:
res = int(int_part) + 1
print(res)
else:
print(int_part)
test(input_num)
8. 题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
思路:
考查字典的相关用法。
1. 先取一个空字典,然后循环+条件判断。
2. 如果key不在里面,则放入value与其对应;
3. 如果在里面,则把要放入的value和之前的value进行相加即可;
num = int(input())
def test(n):
dict = {}
for i in range(n):
k, v = input().split(' ') # 新的技法,避免了两行来输入赋值
k = int(k)
v = int(v)
if k not in dict:
dict[k] = v
else:
dict[k] += v
for k, v in dict.items():
print(k,v) # 新技法,避免了用print(str(k) + ' ' + str(v))
test(num)
9. 题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
思路:
1.利用上一题字典为空,循环+条件的思想;
2. 此处换成字典,并且利用到了字典的切片操作;
num = str(input())
li = []
for i in num[::-1]: # 左右往左,倒回来读
if i not in li: # 利用了上一道题的思想
li.append(i)
else:
continue
print(''.join(li)) # join可以对列表、元组、字典、字符串以指定的字符连接生成一个新的字符串
10. 题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
示例1
输入
abc
输出
3
思路:
还是刚才那到题的思想。
input_char = str(input())
li = []
for i in input_char:
if i not in li:
li.append(i)
else:
continue
print(len(li))