21xrx.com
2025-04-06 04:07:53 Sunday
文章检索 我的文章 写文章
C++输出10000能被7整除各位是3的最大5个数
2023-07-07 05:58:19 深夜i     14     0
C++ 输出 10000 能被7整除 各位是3的 最大5个数

在C++语言中,我们可以使用循环结构和条件语句来实现程序的需求。本文将介绍如何使用C++输出10000能被7整除各位是3的最大5个数。

首先,我们需要使用循环结构来遍历10000以内的整数。由于我们需要输出的是能被7整除且各位数字中含有3的数,因此我们需要在循环中加入条件语句进行判断。

具体来说,我们可以使用%运算符来判断该数能否被7整除,同时使用数字转字符串再分离出各位数字中是否含有3。以下是示例代码:

for(int i=1; i<=10000; i++){
  if(i%7==0){
    string s = to_string(i);
    if(s.find('3') != string::npos)
      //如果满足条件
  }
}

根据题意,我们需要输出这些数中最大的5个数。因此,在上述代码中的注释中,我们需要使用一个数组来存储满足条件的数。同时,每当数组中元素数量达到5个时,我们需要判断数组中最小的元素是否小于当前循环中的数,如果是,则将最小元素替换成当前数。

以下是代码的完整实现:

#include<iostream>
#include<string>
using namespace std;
int main(){
  int arr[5] = 0; //用于存储满足条件的数
  int count = 0; //记录数组中元素个数
  
  for(int i=1; i<=10000; i++){
    if(i%7==0){
      string s = to_string(i);
      if(s.find('3') != string::npos){
        if(count < 5){
          arr[count] = i;
          count++;
        }
        else{
          int min_num = arr[0];
          int min_index = 0;
          for(int j=1; j<5; j++){
            if(arr[j] < min_num){
              min_num = arr[j];
              min_index = j;
            }
          }
          if(i > min_num){
            arr[min_index] = i;
          }
        }
      }
    }
  }
  //输出结果
  for(int i=0; i<5; i++){
    cout << arr[i] << " ";
  }
  return 0;
}

运行上述代码,即可输出10000能被7整除且各位是3的最大5个数。注意,在本题中,我们需要使用字符串来判断数字中是否含有3,所以需要在代码开头包含 头文件。

此外,上述程序只是其中一种实现方法,大家也可以用其他方式实现。希望本文可以帮助大家更好地理解C++的循环结构和条件语句的应用。

  
  

评论区

请求出错了