目录
1071 : 分解质因子
题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。(最后一个数之后不要多空格哦)
样例输入
20
样例输出
2 2 5
注意:质因数不会大于其平方根
C
#include<stdio.h>
#include<math.h>
int main()
{
int n; // 输入的整数
scanf("%d", &n); // 从标准输入读取一个整数n
double mid = sqrt(n); // 计算n的平方根,用于优化循环范围,减少不必要的因子检查
for (int i = 2; i <= mid; i++) // 从2开始循环,检查每个小于等于sqrt(n)的数是否是n的因子
{
if (n < i) break; // 如果n小于当前的i,说明已经分解完成,提前退出循环
while (n % i == 0) // 如果n能被i整除,说明i是n的一个因子
{
if (n / i == 1) // 如果n除以i等于1,说明n已经被完全分解为i的幂,输出i后换行
{
printf("%d\n", i);
}
else // 否则输出i后加一个空格
{
printf("%d ", i);
}
n /= i; // 将n除以i,继续分解剩余部分
}
}
if (n != 1) // 如果最后n不等于1,说明n本身是一个大于sqrt(n)的质因子
{
printf("%d\n", n); // 输出这个质因子
}
return 0;
}
C++
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int n; // 定义变量n,用于存储输入的整数
scanf("%d", &n); // 从标准输入读取一个整数n
double mid = sqrt(n); // 计算n的平方根,并存储在mid中。这是因为一个数的质因数不会大于它的平方根
for (int i = 2; i <= mid; i++) // 从2开始循环,检查每个小于等于mid的整数i是否是n的质因数
{
if (n < i) break; // 如果n小于当前的i,说明n已经被完全分解,提前退出循环
while (n % i == 0) // 如果n能被i整除,说明i是n的一个质因数
{
if (n / i == 1) // 如果n除以i等于1,说明n已经被完全分解为i的幂
{
printf("%d\n", i); // 输出质因数i,并换行
}
else // 如果n除以i不等于1,说明还需要继续分解
{
printf("%d ", i); // 输出质因数i,并在后面加一个空格
}
n /= i; // 将n除以i,继续分解剩余部分
}
}
if (n != 1) // 如果循环结束后n不等于1,说明n本身是一个大于mid的质因数
{
printf("%d\n", n); // 输出这个质因数,并换行
}
return 0; // 程序正常结束
}
法二C语言
#include<stdio.h>
int main()
{
int n, m = 0, i; // 定义变量n(输入的整数),m(用于控制输出格式的标志),i(循环变量)
scanf("%d", &n); // 从标准输入读取一个整数n
// 首先处理2这个特殊的质因数,因为它是唯一的偶数质数
while (n % 2 == 0) // 如果n能被2整除
{
if (m) // 如果m不为0,说明之前已经输出过质因数,需要在当前质因数前加一个空格
printf(" ");
printf("2"); // 输出质因数2
n = n / 2; // 将n除以2,继续分解剩余部分
m = 1; // 设置标志m为1,表示已经输出过质因数
}
// 接下来处理大于2的奇数质因数
for (i = 3; i <= n; i += 2) // 从3开始,以步长为2的循环,检查每个奇数是否是n的质因数
{
while (n % i == 0) // 如果n能被i整除,说明i是n的一个质因数
{
if (m) // 如果m不为0,说明之前已经输出过质因数,需要在当前质因数前加一个空格
printf(" ");
printf("%d", i); // 输出质因数i
n = n / i; // 将n除以i,继续分解剩余部分
m = 1; // 设置标志m为1,表示已经输出过质因数
}
}
return 0; // 程序正常结束
}
1072 : 青蛙爬井
题目描述
有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,试编写一个程序:对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?
输入
输入3个正整数:high、up和down。
输出
输出一个整数,表示天数。输出单独占一行。
样例输入
10 2 1
样例输出
9
C
#include<stdio.h>
#include<math.h>
int main()
{
int high, up, down; // 分别表示井的高度、白天爬升的高度和晚上滑落的高度
scanf("%d%d%d", &high, &up, &down); // 从标准输入读取井的高度、白天爬升高度和晚上滑落高度
int day = 0; // 初始化天数为0
int mid = up - down; // 计算每天实际爬升的高度(白天爬升高度减去晚上滑落高度)
// 如果井的高度为0,直接输出0天,因为蜗牛已经在井口
if (high == 0)
printf("0\n");
// 当井的高度不为0时,开始模拟蜗牛爬井的过程
while (high != 0)
{
if (up >= high) // 如果白天爬升的高度大于或等于井的高度,说明蜗牛在这一天可以爬出井口
{
day++; // 天数加1
high = 0; // 井的高度设置为0,表示蜗牛已经爬出井口
}
else // 如果白天爬升的高度不足以爬出井口
{
day++; // 天数加1
high -= mid; // 井的高度减去每天实际爬升的高度
}
}
printf("%d\n", day); // 输出蜗牛爬出井口所需的天数
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int high, up, down; // 分别表示井的高度、白天爬升的高度和晚上滑落的高度
scanf("%d%d%d", &high, &up, &down); // 从标准输入读取井的高度、白天爬升高度和晚上滑落高度
int day = 0; // 初始化天数为0
int mid = up - down; // 计算每天实际爬升的高度(白天爬升高度减去晚上滑落高度)
// 如果井的高度为0,直接输出0天,因为蜗牛已经在井口
if (high == 0)
printf("0\n");
// 当井的高度不为0时,开始模拟蜗牛爬井的过程
while (high != 0)
{
day++; // 天数加1
if (up >= high) // 如果白天爬升的高度大于或等于井的高度,说明蜗牛在这一天可以爬出井口
{
high = 0; // 井的高度设置为0,表示蜗牛已经爬出井口
}
else // 如果白天爬升的高度不足以爬出井口
{
high -= mid; // 井的高度减去每天实际爬升的高度
}
}
printf("%d\n", day); // 输出蜗牛爬出井口所需的天数
return 0; // 程序正常结束
}
1073 : 画个圈圈诅咒你
题目描述
咦!画圈圈 那么问题来了(和挖掘机无关)
给你一个整数,他到底有几个圈圈呢?
比如数字“0,9,6” 都是有一个圈圈, “8” 有两个圈圈, 其他数字没有圈圈。
输入
输入一个整数 n (1 <= n < 100000);
输出
输出这个数字有几个圈圈。
样例输入
89
样例输出
3
C
#include<stdio.h> // 包含标准输入输出库
int main()
{
int n, res = 0; // 定义变量n(输入的整数)和res(结果,用于计数)
scanf("%d", &n); // 从标准输入读取一个整数n
while (n != 0) // 当n不为0时继续循环
{
if (n % 10 == 0 || n % 10 == 6 || n % 10 == 9) // 如果n的个位数是0、6或9
{
res++; // 结果加1
}
else if (n % 10 == 8) // 如果n的个位数是8
{
res += 2; // 结果加2
}
n /= 10; // 将n除以10,移除个位数
}
printf("%d\n", res); // 输出结果
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int n, res = 0; // 定义变量n(输入的整数)和res(结果,用于计数)
scanf("%d", &n); // 使用scanf从标准输入读取一个整数n
while (n != 0) // 当n不为0时继续循环
{
if (n % 10 == 0 || n % 10 == 6 || n % 10 == 9) // 如果n的个位数是0、6或9
{
res++; // 结果加1
}
else if (n % 10 == 8) // 如果n的个位数是8
{
res += 2; // 结果加2
}
n /= 10; // 将n除以10,移除个位数
}
printf("%d\n", res); // 使用printf输出结果
return 0; // 程序正常结束
}
1074 : 百钱买百鸡
题目描述
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?输入
输入一个正整数n(n<=100)。
输出
如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。
样例输入
100
样例输出
0 25 75 4 18 78 8 11 81 12 4 84
C
#include<stdio.h> // 包含标准输入输出库
int main()
{
int n, flag = 1; // 定义变量n(输入的整数)和flag(标志变量,用于判断是否有解)
scanf("%d", &n); // 从标准输入读取一个整数n,表示用n文钱买n只鸡
// 外层循环枚举公鸡的数量i
// 公鸡的价格为5文钱一只,因此最多可以买n/5只公鸡
for (int i = 0; i <= n / 5; i++)
{
// 内层循环枚举母鸡的数量j
// 母鸡的价格为3文钱一只,因此在购买了i只公鸡后,剩下的钱可以买(n - 5 * i) / 3只母鸡
for (int j = 0; j <= (n - 5 * i) / 3; j++)
{
int k = n - j - i; // 计算小鸡的数量k,小鸡价格为3只一文钱
// 总价计算公式为:公鸡总价(15 * i) + 母鸡总价(9 * j) + 小鸡总价(k)是否等于3n文钱
if ( 15 * i + 9 * j + k == 3 * n)//两边同乘三得到此式
{
printf("%4d%4d%4d\n", i, j, k); // 如果满足条件,输出公鸡、母鸡和小鸡的数量
flag = 0; // 设置标志变量flag为0,表示找到至少一个解
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No Answer\n"); // 输出"No Answer"
}
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int n, flag = 1; // 定义变量n(输入的整数)和flag(标志变量,用于判断是否有解)
scanf("%d", &n); // 从标准输入读取一个整数n,表示用n文钱买n只鸡
// 枚举公鸡的数量i,公鸡价格为5文钱一只,最多可以买n/5只
for (int i = 0; i <= n / 5; i++)
{
// 枚举母鸡的数量j,母鸡价格为3文钱一只,最多可以买(n - 5 * i) / 3只
for (int j = 0; j <= (n - 5 * i) / 3; j++)
{
int k = n - j - i; // 计算小鸡的数量k,小鸡价格为3只一文钱
// 总价计算公式为:公鸡总价(15 * i) + 母鸡总价(9 * j) + 小鸡总价(k)总价是否等于3n文钱
if (15 * i + 9 * j + k == 3 * n)
{
printf("%4d%4d%4d\n", i, j, k); // 如果满足条件,输出公鸡、母鸡和小鸡的数量
flag = 0; // 设置标志变量flag为0,表示找到至少一个解
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No Answer\n"); // 输出"No Answer"
}
return 0; // 程序正常结束
}
1075 : 聚餐人数统计
题目描述
马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计m个人,在一家饭店里吃饭,共花了n先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几个。
输入
输入两个正整数,表示人数m和花费n。
输出
若问题有解,则输出所有解,每行输出三个数据,代表男人、女人和小孩的人数,用空格分隔;若问题无解,则输出“No answer"。
样例输入
30 50
样例输出
0 20 10 1 18 11 2 16 12 3 14 13 4 12 14 5 10 15 6 8 16 7 6 17 8 4 18 9 2 19 10 0 20
C
#include<stdio.h>
int main()
{
int m, n; // m表示总人数,n表示总共花费的先令数
int flag = 1; // 标志变量,用于判断是否有解
scanf("%d%d", &m, &n); // 输入总人数m和总花费n
// 枚举男人的数量i,每个男人花费3先令,最多可以有n/3个男人
for (int i = 0; i <= n / 3 && i <= m; i++) // 提前检查i是否超过总人数m
{
// 枚举女人的数量j,每个女人花费2先令,最多可以有(n - 3*i)/2个女人
for (int j = 0; j <= (n - 3 * i) / 2 && j <= m - i; j++) // 提前检查j是否超过剩余人数
{
int k = m - i - j; // 计算小孩的数量k,小孩花费1先令
// 检查小孩的数量是否非负,并且总花费是否等于n先令
if (k >= 0 && 3 * i + 2 * j + k == n)
{
printf("%d %d %d\n", i, j, k); // 如果满足条件,输出男人、女人和小孩的数量
flag = 0; // 设置标志变量flag为0,表示找到至少一个解
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No answer\n"); // 输出"No answer"
}
return 0; // 程序正常结束
}
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
#include<algorithm> // 包含算法库(虽然在这段代码中未使用到)
using namespace std; // 使用标准命名空间
int main()
{
int m, n; // m表示总人数,n表示总共花费的先令数
int flag = 1; // 标志变量,用于判断是否有解
scanf("%d%d", &m, &n); // 从标准输入读取总人数m和总花费n
// 枚举男人的数量i,每个男人花费3先令,最多可以有n/3个男人
for (int i = 0; i <= n / 3; i++)
{
// 枚举女人的数量j,每个女人花费2先令,最多可以有(n - 3*i)/2个女人
for (int j = 0; j <= (n - 3 * i) / 2; j++)
{
int k = m - i - j; // 计算小孩的数量k,小孩花费1先令
// 检查小孩的数量是否非负,并且总花费是否等于n先令
// 总花费计算公式为:男人花费(3 * i) + 女人花费(2 * j) + 小孩花费(k)
if (k >= 0 && k + 2 * j + 3 * i == n)
{
printf("%d %d %d\n", i, j, k); // 如果满足条件,输出男人、女人和小孩的数量
flag = 0; // 设置标志变量flag为0,表示找到至少一个解
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No answer\n"); // 输出"No answer"
}
return 0; // 程序正常结束
}
1076 : 三位数求解
题目描述
已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”
注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。输入
输入一个正整数n。
输出
输出一行,包含x、y、z的值,每个数值占4列。
样例输入
532
样例输出
3 2 1
注意:x和y不能等于0
100*x+y*10+z+y*100+z*10+z = 100*x + 110*y + 12 * z
C
#include<stdio.h>
int main()
{
int n; // 定义变量n,表示输入的正整数
scanf("%d", &n); // 从标准输入读取一个正整数n
int flag = 1; // 定义标志变量flag,初始值为1,表示“未找到解”
// 首先检查n的范围是否在可能的解的范围内
// 最小值:当x=1, y=1, z=0时,100*1 + 110*1 + 12*0 = 210
// 最大值:当x=9, y=9, z=9时,100*9 + 110*9 + 12*9 = 1998
if (n > 1998 || n < 210)
{
printf("No Answer\n"); // 如果n不在范围内,直接输出"No Answer"
flag = 0; // 设置flag为0,表示已处理
}
else
{
// 枚举x的值,x的范围是1到9(因为x是三位数的百位,不能为0)
for (int x = 1; x <= 9; x++)
{
// 枚举y的值,y的范围是1到9(因为y是三位数的百位,不能为0)
for (int y = 1; y <= 9; y++)
{
// 枚举z的值,z的范围是0到9(因为z是三位数的个位,可以为0)
for (int z = 0; z <= 9; z++)
{
// 检查当前的x、y、z是否满足方程100*x + 110*y + 12*z == n
if (100 * x + 110 * y + 12 * z == n)
{
printf("%4d%4d%4d\n", x, y, z); // 如果满足条件,输出x、y、z
flag = 0; // 设置flag为0,表示找到至少一个解
}
}
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No Answer\n"); // 输出"No Answer"
}
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int n; // 定义变量n,表示输入的正整数
scanf("%d", &n); // 从标准输入读取一个正整数n
int flag = 1; // 定义标志变量flag,初始值为1,表示“未找到解”
// 检查n的范围是否在可能的解的范围内
// 最小值:当x=1, y=1, z=0时,100*1 + 110*1 + 12*0 = 210
// 最大值:当x=9, y=9, z=9时,100*9 + 110*9 + 12*9 = 1998
if (n > 1998 || n < 210)
{
printf("No Answer\n"); // 如果n不在范围内,直接输出"No Answer"
flag = 0; // 设置flag为0,表示已处理
}
else
{
// 枚举x的值,x的范围是1到9(因为x是三位数的百位,不能为0)
for (int x = 1; x <= 9; x++)
{
// 枚举y的值,y的范围是1到9(因为y是三位数的百位,不能为0)
for (int y = 1; y <= 9; y++)
{
// 枚举z的值,z的范围是0到9(因为z是三位数的个位,可以为0)
for (int z = 0; z <= 9; z++)
{
// 检查当前的x、y、z是否满足方程100*x + 110*y + 12*z == n
if (100 * x + 110 * y + 12 * z == n)
{
printf("%4d%4d%4d\n", x, y, z); // 如果满足条件,输出x、y、z
flag = 0; // 设置flag为0,表示找到至少一个解
}
}
}
}
}
// 如果flag仍为1,说明没有找到满足条件的解
if (flag == 1)
{
printf("No Answer\n"); // 输出"No Answer"
}
return 0; // 程序正常结束
}
1077 : 字符串加密
题目描述
输入一串字符和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后面的第k个字母代替,变换公式:c=c+k。如果字母为z,则后一个字母是a,也就是字母字符形成一个圆。
输入
输入第一行是一个整数k,k是int范围内的正整数;输入第二行是若干字符,以回车结束。
输出
输出加密后的字符串,占一行。
样例输入
280
12kjsdZjk样例输出
12edmxTde
C
#include<stdio.h>
int main()
{
int k, i = 0; // k表示移动的位数,i用于记录字符串的索引
scanf("%d", &k);
getchar(); // 读取并丢弃换行符,避免影响后续的字符读取
k = k % 26; // 将k取模26,因为字母表有26个字母,这样可以避免不必要的循环
char ch, str[100000]; // ch用于临时存储每个字符,str用于存储最终加密后的字符串
// 假设字符串长度不超过100000
while(scanf("%c", &ch), ch != '\n') // 逐个读取字符,直到遇到换行符为止
{
if(ch >= 'a' && ch <= 'z') // 如果字符是小写字母
{
str[i++] = (ch - 'a' + k) % 26 + 'a'; // 将字母移动k个位置,结果仍然是小写字母
}
else if(ch >= 'A' && ch <= 'Z') // 如果字符是大写字母
{
str[i++] = (ch - 'A' + k) % 26 + 'A'; // 将字母移动k个位置,结果仍然是大写字母
}
else
{
str[i++] = ch; // 如果字符不是字母,直接保留原样
}
}
str[i] = '\0'; // 在字符串末尾添加空字符,表示字符串结束
puts(str); // 输出加密后的字符串
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int k, i = 0; // k表示移动的位数,i用于记录字符串的索引
scanf("%d", &k); // 从标准输入读取一个整数k
getchar(); // 读取并丢弃换行符,避免影响后续的字符读取
k = k % 26; // 将k取模26,因为字母表有26个字母,这样可以避免不必要的循环
char ch, str[100000]; // ch用于临时存储每个字符,str用于存储最终加密后的字符串
// 假设字符串长度不超过100000
while(scanf("%c", &ch), ch != '\n') // 逐个读取字符,直到遇到换行符为止
{
if(ch >= 'a' && ch <= 'z') // 如果字符是小写字母
{
str[i++] = (ch - 'a' + k) % 26 + 'a'; // 将字母移动k个位置,结果仍然是小写字母
}
else if(ch >= 'A' && ch <= 'Z') // 如果字符是大写字母
{
str[i++] = (ch - 'A' + k) % 26 + 'A'; // 将字母移动k个位置,结果仍然是大写字母
}
else
{
str[i++] = ch; // 如果字符不是字母,直接保留原样
}
}
str[i] = '\0'; // 在字符串末尾添加空字符,表示字符串结束
puts(str); // 输出加密后的字符串
return 0; // 程序正常结束
}
1078 : a+b(多实例测试1)
题目描述
计算A+B
输入
输入第1行为一个整数n(1≤n≤10),代表测试的组数。
下面有n组测试数据,每组1行,为2个整数,为A, B。输出
对每行输入,输出A+B的值,单独占一行。
样例输入
2
1 2
3 4样例输出
3
7
C
#include<stdio.h> // 包含标准输入输出库
int main()
{
int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
scanf("%d", &n); // 从标准输入读取一个整数n
// 使用while循环,循环n次,每次循环n减1
while (n--)
{
int a, b; // 定义两个整数变量a和b
scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
printf("%d\n", a + b); // 输出它们的和
}
return 0; // 程序正常结束
}
代码二
#include<stdio.h> // 包含标准输入输出库
// 定义一个函数solve,用于处理每次加法操作
void solve()
{
int a, b; // 定义两个整数变量a和b
scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
printf("%d\n", a + b); // 输出它们的和
}
int main()
{
int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
scanf("%d", &n); // 从标准输入读取一个整数n
while (n--) // 循环执行n次,每次循环n减1
{
solve(); // 调用solve函数,处理一次加法操作
}
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
// 定义一个函数solve,用于处理每次加法操作
void solve()
{
int a, b; // 定义两个整数变量a和b
scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
printf("%d\n", a + b); // 输出它们的和
}
int main()
{
int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
scanf("%d", &n); // 从标准输入读取一个整数n
while (n--) // 循环执行n次,每次循环n减1
{
solve(); // 调用solve函数,处理一次加法操作
}
return 0; // 程序正常结束
}
1079 : a+b(多实例测试2)
题目描述
计算A+B
输入
输入数据有多组。
每组一行,为整数A, B。输出
对每行输入,输出A+B的值,单独占一行。
样例输入
1 2
3 4样例输出
3 7
C
在 C 语言中,scanf 和其他输入函数也可以检测到文件结束符(EOF)。scanf 函数在遇到 EOF 时会返回 EOF(通常是一个负值,通常是 -1)。因此,可以使用 scanf 的返回值来判断是否到达了文件结束符。
例如:while (scanf("%d %d", &A, &B) != EOF)
#include<stdio.h>
int main()
{
int A, B;
while(scanf("%d %d", &A, &B) != EOF) // 使用scanf从标准输入读取A和B,直到输入结束
{
printf("%d\n", A + B); // 输出A和B的和,并换行
}
return 0; // 程序正常结束
}
C++
cin 在 C++ 中可以自动判断文件结束符(EOF)。当输入流到达文件结束符时,cin 会进入失败状态,可以通过检查输入流的状态来判断是否到达了文件结束符。
例如: while (cin >> A >> B)
#include <iostream>
using namespace std;
int main() {
int A, B;
while (cin >> A >> B) { // 从标准输入读取A和B,直到输入结束
cout << A + B << endl; // 输出A和B的和,并换行
}
return 0; // 程序正常结束
}
1080 : a+b(多实例测试3)
题目描述
计算A+B
输入
输入数据有多组。
每组一行,为两个整数A, B。输入0 0表示输入结束,该组输入不用处理。输出
对每行输入,输出A+B的值,单独占一行。
样例输入
1 2
0 0样例输出
3
注意:逻辑关系用或(||)
C
#include<stdio.h> // 包含标准输入输出库
int main()
{
int a, b; // 定义两个整数变量a和b
// 使用while循环读取输入,循环条件是a!=0 || b!=0
// 当a和b都为0时,循环停止
while(scanf("%d%d", &a, &b) , a != 0 || b != 0)
{
printf("%d\n", a + b); // 输出a和b的和
}
return 0; // 程序正常结束
}
C++
#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int a, b; // 定义两个整数变量a和b
// 使用while循环读取输入,循环条件是a!=0 || b!=0
// 当a和b都为0时,循环停止
while(scanf("%d%d", &a, &b) , a != 0 || b != 0)
{
printf("%d\n", a + b); // 输出a和b的和
}
return 0; // 程序正常结束
}