c++编程读入整数n,计算nn。输入 每行输入一个整数n,输入-1表示输入结束输出 针对每行输入的n,输出一行nn的结果
时间: 2024-11-30 13:23:06 浏览: 13
在C++编程中,你可以通过标准输入流cin来读取用户的整数输入,并利用循环结构来处理直到用户输入-1为止。下面是一个简单的示例程序,它会计算并输出每个输入的整数的平方:
```cpp
#include <iostream>
int main() {
int n;
while (true) {
std::cout << "请输入一个整数(n=-1退出): ";
if (!(std::cin >> n)) { // 如果无法读取,可能是输入了非数字,或者已输入-1
break; // 输入结束,跳出循环
}
if (n == -1) {
std::cout << "输入结束。\n";
break; // 输入-1,直接结束程序
} else {
int nn = n * n;
std::cout << "nn的结果是: " << nn << "\n";
}
}
return 0;
}
```
这个程序首先提示用户输入一个整数,然后检查输入是否有效。如果输入的是-1,则显示消息后退出;如果是其他正整数,就计算它的平方并输出结果。
相关问题
用c++完成这道题:题目描述 给定 NN 个整数,再给定 MM 次询问,每次询问给出一个整数 XX ,请求出针对每次询问,整数 XX 在 NN 个整数中出现的次数。 输入 第 11 行读入一个整数 NN 和 MM。 第 22 行读入 NN 个整数,整数之间用空格隔开。 第 33 行读入 MM 个整数,整数之间用空格隔开。 输出 输出 MM 个整数,用空格隔开,第 ii 个整数,代表针对第 ii 次询问的结果。 样例 输入复制 6 3 1 2 1 3 1 2 2 1 3 输出复制 2 3 1 说明 【数据范围】 1 ≤ N,M ≤ 101≤N,M≤1055 读入的 NN 个整数和 MM 次询问的值均在[11,10109]范围内。
以下是你需要的 C++ 代码:
```c++
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
unordered_map<int, int> cnt;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
cnt[x]++;
}
for (int i = 0; i < m; i++) {
int x;
cin >> x;
cout << cnt[x] << " ";
}
return 0;
}
```
代码解释:
首先读入整数 $n$ 和 $m$,然后用 `unordered_map` 统计每个数出现的次数。最后依次读入每个询问的数 $x$,输出其在 $n$ 个数中出现的次数即可。
用c++完成这道题:题目描述 给定一个 nn 个数的数组 aa (保证 nn 个数互不相同),再给定 mm 次询问,每次询问一个整数 xx 在数组 aa 中出现的位置,如果存在输出该数在 aa 数组中出现的位置,不存在输出 00 。 输入 第 11 行是一个整数 nn(5≤n≤10^55≤n≤10 5 )。 第 22 行有 nn 个整数,数与数之间用空格隔开。 第 33 行有一个整数 mm(5≤m≤10^55≤m≤10 5 )。 接下来 mm 行,每行有一个整数。 输出 输出 mm 行,每行输出每次查询的整数在 aa 数组中的位置,如果该数不存在,输出 00。 样例 输入复制 5 1 5 2 4 6 5 5 1 8 9 0 输出复制 2 1 0 0 0 说明 【注意】 由于本题读入、输出的数据较多,C++选手请使用scanf和printf 替代 cin和cout 提升读写效率。
以下是C++代码实现:
```c++
#include <cstdio>
#include <unordered_map>
using namespace std;
int main() {
int n, m;
scanf("%d", &n);
unordered_map<int, int> mp; // 建立哈希表
for (int i = 1; i <= n; i++) {
int x;
scanf("%d", &x);
mp[x] = i; // 将每个数的位置存入哈希表
}
scanf("%d", &m);
while (m--) {
int x;
scanf("%d", &x);
if (mp.count(x)) { // 判断该数是否存在
printf("%d ", mp[x]);
} else {
printf("0 ");
}
}
return 0;
}
```
解释一下代码实现:
首先读入整数n,然后使用unordered_map(哈希表)来存储每个数在数组中的位置,读入时将每个数的位置存入哈希表。
然后读入整数m,进行m次查询,对于每次查询,判断该数是否在哈希表中出现过,如果出现过则输出该数在数组中的位置,否则输出0。
阅读全文