在两行中分别输入两个整数a,b,在三行中依次输出加、减和乘法运算的结果
时间: 2023-11-22 12:52:22 浏览: 291
请看以下代码:
```
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b << endl;
cout << a - b << endl;
cout << a * b << endl;
return 0;
}
```
第一行输入两个整数a和b,第二行输出它们的和,第三行输出它们的差,第四行输出它们的积。
相关问题
编写java程序实现两个超长正整数(每个最长80位数字)的加法和乘法运算。 【输入形式】从当前目录下的plus.in文件读入以下内容: 1. 第一行是超长正整数A; 2. 第二行只有一个字符"+"或"*",分别代表加、乘运算; 3. 第三行是超长正整数B。 【输出形式】输出到当前目录下的plus.out文件中。输出只有一行,是两个长整数的运算结果,从高到低依次输出各位数字。各位数字紧密输出,不带有前缀的多余的0。 在行尾要输出一个回车符。 【输入文件】假设输入文件plus.in的内容如下: 13409870 * 234098 【输出文件】输出文件plus.out的内容如下: 3139223747260 【样例说明】进行两个正整数进行乘法运算,13409870 * 234098 = 3139223747260。
好的,这是一个大数运算问题,我可以帮你写一个Java程序来解决它。以下是代码:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Scanner;
public class LongInt {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("plus.in"));
String aStr = input.nextLine();
String op = input.nextLine();
String bStr = input.nextLine();
input.close();
BigInteger a = new BigInteger(aStr);
BigInteger b = new BigInteger(bStr);
BigInteger result;
if (op.equals("+")) {
result = a.add(b);
} else {
result = a.multiply(b);
}
PrintWriter output = new PrintWriter(new File("plus.out"));
output.println(result);
output.close();
}
}
```
这个程序首先从文件"plus.in"中读取三行输入,分别是两个超长正整数A和B,以及运算符号"+"或"*"。然后使用Java中的BigInteger类来进行大数运算,根据运算符号选择执行加法或乘法操作。最后将结果输出到文件"plus.out"中。
需要注意的是,由于超长正整数可能超过了Java中long类型的表示范围,我们需要使用BigInteger类来进行运算。BigInteger类提供了add和multiply方法来执行加法和乘法操作。
希望这个程序能够满足你的需求。
用C语言写代码【问题描述】编写程序实现两个超长正整数(每个最长80位数字)的加法和乘法运算。 【输入形式】从当前目录下的plus.in文件读入以下内容: 1. 第一行是超长正整数A; 2. 第二行只有一个字符“+”或“*”,分别代表加、乘运算; 3. 第三行是超长正整数B。 【输出形式】输出到当前目录下的plus.out文件中。输出只有一行,是两个长整数的运算结果,从高到低依次输出各位数字。各位数字紧密输出,不带有前缀的多余的0。 在行尾要输出一个回车符。 【输入
以下是用C语言实现的代码,可以实现两个超长正整数的加法和乘法运算:
```c
#include <stdio.h>
#include <string.h>
#define MAXLEN 82
void add(char a[], char b[], char res[]) {
int lena = strlen(a);
int lenb = strlen(b);
int len = lena > lenb ? lena : lenb;
int carry = 0;
for (int i = 0; i < len; i++) {
int x = i < lena ? a[lena - 1 - i] - '0' : 0;
int y = i < lenb ? b[lenb - 1 - i] - '0' : 0;
int sum = x + y + carry;
res[len - 1 - i] = sum % 10 + '0';
carry = sum / 10;
}
if (carry) {
res[0] = carry + '0';
res[len + 1] = '\0';
} else {
res[0] = '0';
res[len] = '\0';
}
}
void mul(char a[], char b[], char res[]) {
int lena = strlen(a);
int lenb = strlen(b);
int len = lena + lenb;
int carry = 0;
for (int i = 0; i < len; i++) {
int sum = carry;
for (int j = 0; j <= i; j++) {
int x = j < lena ? a[lena - 1 - j] - '0' : 0;
int y = i - j < lenb ? b[lenb - 1 - (i - j)] - '0' : 0;
sum += x * y;
}
res[len - 1 - i] = sum % 10 + '0';
carry = sum / 10;
}
int i;
for (i = 0; i < len - 1 && res[i] == '0'; i++);
strcpy(res, res + i);
}
int main() {
char a[MAXLEN], b[MAXLEN], op, res[MAXLEN * 2];
scanf("%s %c %s", a, &op, b);
if (op == '+') {
add(a, b, res);
} else if (op == '*') {
mul(a, b, res);
}
printf("%s\n", res);
return 0;
}
```
注意,本程序默认输入的两个数都是非负整数,不支持负数运算。如果需要支持负数运算,可以在代码中做一些修改。
阅读全文