21xrx.com
2025-03-24 23:12:18 Monday
文章检索 我的文章 写文章
C++实现正整数各位数之和等于该整数的输入输出
2023-07-05 21:47:18 深夜i     --     --
C++ 整数 各位数之和 输入 输出

在C++中实现正整数各位数之和等于该整数的输入输出,可以使用循环语句以及函数。具体实现步骤如下:

首先,需要编写一个函数来判断一个数是否符合条件,即该数各位数之和等于该数本身。函数的代码如下:

bool isSumEqual(int n){
  int sum = 0;
  int temp = n;
  while(temp > 0){
    sum += temp % 10;
    temp /= 10;
  }
  return sum == n;
}

该函数先定义一个变量sum,用来存储n的各位数之和。然后通过while循环不断取出n的各个数位并累加到sum上,最后判断sum是否等于n,如果等于则返回true,否则返回false。

接下来,可以编写主函数,在主函数中通过循环从键盘上不断读入正整数,并判断其是否符合条件,如果符合条件则输出该数。代码如下:

#include <iostream>
using namespace std;
bool isSumEqual(int n){
  int sum = 0;
  int temp = n;
  while(temp > 0){
    sum += temp % 10;
    temp /= 10;
  }
  return sum == n;
}
int main()
{
  int n;
  cout << "请输入正整数:" << endl;
  cin >> n;
  if(isSumEqual(n))
    cout << n << endl;
  
  else
    cout << "不符合条件!" << endl;
  
  return 0;
}

以上代码只能读入一个正整数并进行判断,如果需要读入多个正整数并进行判断,可以在主函数中使用while循环,不断读入并进行判断。代码如下:

#include <iostream>
using namespace std;
bool isSumEqual(int n){
  int sum = 0;
  int temp = n;
  while(temp > 0){
    sum += temp % 10;
    temp /= 10;
  }
  return sum == n;
}
int main()
{
  int n;
  cout << "请输入多个正整数,用空格隔开:" << endl;
  while(cin >> n){
    if(isSumEqual(n))
      cout << n << endl;
    
  }
  return 0;
}

通过以上写法,可以实现读入多个正整数并进行判断,并且如果符合条件会输出该数。因此,这是一个比较便利且实用的代码写法。

总之,通过以上的介绍,大家已经了解到了在C++中实现正整数各位数之和等于该整数的输入输出的方法。对于初学者来说,可以通过这个方法加深对C++的掌握和理解。

  
  

评论区