现有一个5位数的正整数n=63245(即n是一个已知的数,固定为63245),编写程序将其拆分为两个正整数632和45,计算并输出拆分后的两个数的加、减、乘、除和求余的结果。例如n=63245,设拆分
时间: 2023-04-24 17:04:34 浏览: 128
后的两个数为a和b,则:
a = 632
b = 45
加法:a + b = 632 + 45 = 677
减法:a - b = 632 - 45 = 587
乘法:a * b = 632 * 45 = 28440
除法:a / b = 632 / 45 ≈ 14.0444(保留四位小数)
求余:a % b = 632 % 45 = 17
程序实现:
n = 63245
a = n // 100
b = n % 100
print("a =", a)
print("b =", b)
print("a + b =", a + b)
print("a - b =", a - b)
print("a * b =", a * b)
print("a / b =", round(a / b, 4))
print("a % b =", a % b)
相关问题
用c写一个顺序表.已知A、B分别是m、n位(位数为10-30的随机正整数)的随机正整数,编写程序给出这两个正整数相加的结果。如:A=47858628539074,B= 212821064467,C=A+B=48071449603541
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 30
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void initList(SqList *L) {
L->length = 0;
}
void input(SqList *L) {
char s[MAXSIZE];
scanf("%s", s);
int i = 0;
while (s[i] != '\0') {
L->data[i] = s[i] - '0';
i++;
}
L->length = i;
}
void add(SqList A, SqList B, SqList *C) {
int carry = 0, sum;
int i = A.length - 1, j = B.length - 1, k = 0;
while (i >= 0 || j >= 0 || carry != 0) {
sum = carry;
if (i >= 0) {
sum += A.data[i];
i--;
}
if (j >= 0) {
sum += B.data[j];
j--;
}
C->data[k] = sum % 10;
k++;
carry = sum / 10;
}
C->length = k;
}
void output(SqList L) {
for (int i = L.length - 1; i >= 0; i--) {
printf("%d", L.data[i]);
}
printf("\n");
}
int main() {
SqList A, B, C;
initList(&A);
initList(&B);
input(&A);
input(&B);
add(A, B, &C);
output(C);
return 0;
}
2.已知A、B分别是m、n位(位数为小于30的随机正整数)的随机正整数,编写程序给出这两个正整数相加的结果。如:A=47858628539074,B= 212821064467,C=A+B=48071449603541
可以使用Python中的高精度计算库(如Python自带的decimal模块或第三方库gmpy2)来实现高精度计算。
以下是使用Python自带的decimal模块实现的代码:
```python
from decimal import Decimal
A = '47858628539074'
B = '212821064467'
# 将A、B转换为Decimal类型
a = Decimal(A)
b = Decimal(B)
# 计算A+B,并将结果转换为字符串类型
C = str(a + b)
print(C)
```
输出结果为:48071449603541
注意:在使用高精度计算库时,需要考虑进位、补零等问题,具体实现可以参考库的使用文档。
阅读全文