注册 登录
编程论坛 C++教室

今天看 C++ 书籍看到一个题,由此联想到了一个问题无法解决,还请大神予以帮助

宇智波鼬123 发布于 2014-06-28 20:24, 631 次点击
编写一个程序求解100以内可以被5或10整除的最大自然数。
当然问题很好解决,但是如果加上这样一些限制条件呢:编写一个程序求解100以内可以被5或10整除的自然数并且输出,而且找出最大自然数?
想了好久不能解决,主要是不知道如何把可以被5或10的数整除后赋值给数组,再加以比较大小,并输出
还请大神指点。
6 回复
#2
zklhp2014-06-28 20:28
如果仅就这个题目 那么 直接输出5的倍数的就可以了

【100以内可以被5或10整除的自然数】不就是5的倍数么
#3
宇智波鼬1232014-06-28 20:42
是被5或是7整除,重点在后面,要把可以被整除的都输出来,并且将最大值找出来
#4
wp2319572014-06-29 07:35
从100往回找  笫一个满足条件的既是所求
#5
wp2319572014-06-29 09:59
不用数组的
程序代码:

#include <stdio.h>

int main()
{
    int i,max;
    for(i=100;i>0;i--)
    {
        if( i % 5 == 0 || i % 7 == 0) { max=i; break; }
    }
    for(;i>0;i--) if( i % 5 == 0 || i % 7 == 0) printf("%4d",i);
    printf("\n最大值是%d\n",max);
    return 0;
}
#6
zklhp2014-06-30 21:52
程序代码:

//g++ -Wall -march=corei7-avx -Ofast -msse4.2 -mavx -std=c++1y a.cpp -lm -o a
#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/iterator/counting_iterator.hpp>

using std::cout;
using std::endl;

int main(void)
{
    const int max_num = 100;
    std::vector<int> vec(
        boost::counting_iterator<int>(1),
        boost::counting_iterator<int>(max_num));
    for_each (vec.begin(), vec.end(),
          [] (auto i)
          {
              if (i % 5 == 0 || i % 7 == 0)
                  cout << i << endl;
          });
   
    return 0;
}


不排序了 就是最后一个 不用排。。
1