Skip to content

基本运算

包括整数与小数运算,数位分离等

P0101001-基本整数运算

问题描述

给定两个整数 a 和 b,计算并输出它们的加法、减法、乘法和除法的结果。

输入描述

输入一行,包含两个整数 ab (1000a,b1000,且保证除法时 b0)。

输出描述

输出四行,分别为这两个整数的加法、减法、乘法和除法的结果。除法结果保留两位小数。

输入输出示例

输入数据

15 3

输出数据

18 12 45 5.00

参考代码

py
a = int(input())
b = int(input())

print(a + b)
print(a - b)
print(a * b)
print(f'{(a / b):.2f}')
cpp

P0101002-总分和平均分

问题描述

期末考试成绩出来了,小明同学语文、数学、英语分别考了x、y、z分,请编程帮助小明计算一下,他的总分和平均分分别考了多少分?

输入描述

三个整数x、y、z分别代表小明三科考试的成绩。

输出描述

第1行有一个整数,代表总分,第2行有一个小数(保留1位小数)代表平均分。

输入输出示例

输入数据

100 95 91

输出数据

286
95.3

参考代码

py
x, y, z = map(int, input().split())

total = x + y + z
avg = total / 3

print(total)
print(f'{avg:.1f}')
cpp

P0101003-买文具-GESP20230901P01

问题描述

开学了,小明到文具店选购文具。签字笔2元一支,他需要X支;记事本5元一本,他需要 Y 本;直尺3元一把,他需要Z把。小明手里有Q元钱,请你编程计算,小明手里的钱是否购买他需要的文具。

输入描述

输入4行。 第一行包含一个正整数X,是小明购买签字笔的数量。约定 1X10。 第二行包含一个正整数Y,是小明购买记事本的数量。约定 1Y10。 第三行包含一个正整数Z,是小明购买直尺的数量。约定 1Z10。 第四行包含一个正整数Q,是小明手里的钱数(单位:元)。

输出描述

输出2行。如果小明手里的钱够他买文具,则第一行输出"Yes",第二行输出小明会剩下的钱数(单位:元);否则,第一行输出"No",第二行输出小明缺少的钱数(单位:元)。

输入输出示例

输入数据1

1
1
1
20

输出数据1

Yes
10

输入数据2

1
1
1
5

输出数据2

No
5

参考代码

py
X = int(input())
Y = int(input())
Z = int(input())
Q = int(input())

Money = 2 * X + 5 * Y + 3 * Z

if Money <= Q:
    print('Yes')
    print(Q - Money)
else:
    print('No')
    print(Money - Q)
cpp

P0101004-文具店折扣

问题描述

开学了,小明到文具店选购文具。签字笔2元一支,他需要X支;记事本5元一本,他需要 Y 本。文具店正在做活动,可以打9折。小明付给老板Q元钱,请你编程计算,老板应该找给小明多少钱。

输入描述

输入3行。 第一行包含一个正整数X,是小明购买签字笔的数量。约定 1X10。 第二行包含一个正整数Y,是小明购买记事本的数量。约定 1Y10。 第三行包含一个正整数Q,是小明付给老板的钱数(单位:元)。

输出描述

输出一行,包括一个小数(保留1位小数)。表示老板应该找给小明的钱数。

输入输出示例

输入数据

2
1
5

输出数据

2.3

参考代码

py
X = int(input())
Y = int(input())
Q = int(input())

Money = (X * 2 + Y * 5) * 0.9
print(Money)
print(f'{(Q-Money):.1f}')
cpp

P0101005-计算正方形的面积

问题描述

输入正方形的边长,输出其面积。

输入描述

输入一行,包含一个整数 a (1a100),表示正方形的边长。

输出描述

输出一行,为正方形的面积。

输入输出示例

输入数据

4

输出数据

16

参考代码

py
a = int(input())
s = a * a
print(a)
cpp

P0101006-计算矩形的周长

问题描述

输入矩形的长和宽,输出其周长。

输入描述

输入一行,包含两个整数 lw (1l,w100),分别表示矩形的长度和宽度。

输出描述

输出一行,为矩形的周长。

输入输出示例

输入数据

6 4

输出数据

20

参考代码

py
l, w = map(int,input().split())

c = (l + w) * 2

print(c)
cpp

P0101007-计算圆的面积

问题描述

输入圆的半径,输出其面积。可以使用 3.14 作为圆周率的近似值。

输入描述

输入一行,包含一个整数 r (1r100),表示圆的半径。

输出描述

输出一行,为圆的面积,结果保留两位小数。

输入输出示例

输入数据

5

输出数据

78.50

参考代码

py
pi = 3.14
r = int(input())

s = pi *  r * r

print(f'{s:.2f}')
cpp

P0101008-求两位数的个位和十位上的数字

问题描述

输入一个两位数,输出该数的个位和十位上的数字。

输入描述

输入一行,包含一个两位正整数 n (10n99)。

输出描述

输出两行,第一行为该数的十位数字,第二行为该数的个位数字。

输入输出示例

输入数据

47

输出数据

4
7

参考代码

py
n = int(input())

o_digit = n % 10
t_digit = n // 10

print(t_digit)
print(o_digit)
cpp

P0101009-求一个三位数的各位数字之和

问题描述

输入一个正整数 n,求该正整数各位上数字之和。

输入描述

输入一行,只有一个三位的正整数 n (100n999)

输出描述

输出一行,包括一个正整数。

输入输出示例

输入数据

123

输出数据

6

参考代码

py
n = int(input())
s = 0

o_digit = n % 10
t_digit = n // 10 % 10
h_digit = n // 100

s = o_digit + t_digit + h_digit

print(s)
cpp

P0101010-对调三位数的百位和个位数字

问题描述

输入一个三位数,将该数的百位和个位数字对调,输出对调后的数字。

输入描述

输入一行,包含一个三位正整数 n (100n999)。

输出描述

输出一行,为对调百位和个位后的新整数。

输入输出示例

输入数据

123

输出数据

321

参考代码

py
n = int(input())

new_n = 0

o_digit = n % 10
t_digit = n // 10 % 10
h_digit = n // 100

new_n = o_digit * 100 + t_digit * 10 + h_digit

print(new_n)
cpp

P0101011-计算密码

问题描述

输入一个六位数,按规则将该数的转换获得新数。

转换的规则是:先将六位数分为前三位和后三位,然后比较,将较大的三位数放在前面,较小的三位数放在后面,重新组成一个六位数;

请编程计算转换后的六位数。

比如:输入 687523,那么前三位数 687 ,后三位数523 ,由于前三位 > 后三位,因此不需要换位置,计算结果任然是 687523;

再比如:输入 123468 ,那么前三位是 123 ,后三位是468 ,由于前三位 > 后三位,因此需要换位置,得到新的 6 位数是 468123 。

输入描述

输入一行,包含一个六位正整数。

输出描述

输出一行,为转换后的六位数。

输入输出示例

输入数据

687523

输出数据

687523

参考代码

py
n = int(input())

l = n // 1000
r = n % 1000

if l < r:
    n = r * 1000 + l
print(n)
cpp

P0101012-奇怪的数

问题描述

小明最近刚刚学习数学,回家后老师布置了一道题目:要求小明找出满足条件的奇怪整数:

  • A 、该数为四位数
  • B 、该数的千位和十位对调,百位和个位对调后,仍然等于本身
  • C 、该数为奇数。

你能帮助小明找到满足以上条件的奇怪整数吗?

输入描述

输入一个整数 n(n≥1000) 。

输出描述

n 以内的奇怪整数,每行一个。

输入输出示例

输入数据

2000

输出数据

1111
1313
1515
1717
1919

参考代码

py
n = int(input())

for i in range(1000, n+1):
    s_digit = i // 1000
    h_digit = i // 100 % 10
    t_digit = i // 10 % 10
    o_digit = i % 10
    if i % 2 != 0:
        j = t_digit * 1000 + o_digit * 100 + s_digit * 10 + h_digit
        if i == j:
            print(i)
cpp

P0101013-求一个两位数的倒序结果

问题描述

请输出一个两位的整数 n,倒过来的数,也就是输出这个两位数个位和十位颠倒的结果。

比如:整数 23 倒过来是 32.

输入描述

两位整数 n

输出描述

n 倒过来的整数。

输入输出示例

输入数据

18

输出数据

81

参考代码

py
n = int(input())

t_digit = n // 10
o_digit = n % 10

m = o_digit * 10 + t_digit

print(m)
cpp