21xrx.com
2024-11-25 01:15:20 Monday
登录
文章检索 我的文章 写文章
C++输出10000能被7整除各位是3的最大5个数
2023-07-07 05:58:19 深夜i     --     --
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++的循环结构和条件语句的应用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复