刘子诺 发表于 2022-11-3 08:50:56

一道题目

我刷OJ遇到了一道题,请大家帮我看一下,我是个小学生,实在想不出来

给一个五位数n,判断其中最大的一个数位是不是小于7(C++)

tommyyu 发表于 2022-11-3 09:22:40

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
        int n; cin >> n;
        int max_ = -1;
        while(n) {
                max_ = max(n%10, max_);
                n /= 10;
        }
        if( max_ < 7 ) cout << "最大数位小于7!";
        else cout << "最大数位不小于7!";
        return 0;
}

两手空空儿 发表于 2022-11-3 09:32:51

本帖最后由 两手空空儿 于 2022-11-3 09:41 编辑

既然已经给定是一个5位数,
方法1,那把这个数除以10000,它就变成了一个个位数,再和7比较就可出结果
方法2,用这个数和70000比较,直接就可以有结果


int i;
cin >> i ;
i /=10000;
if(i < 7){
        cout << "万位小于7" << endl;
}else {
        cout << "万位不小于7" << endl;
}




if(i < 70000){
        cout << "万位小于7" << endl;
}else {
        cout << "万位不小于7" << endl;
}

jackz007 发表于 2022-11-3 11:15:31

本帖最后由 jackz007 于 2022-11-3 11:18 编辑

#include <stdio.h>

int main(void)
{
      int d , m                                              ;
      scanf("%d" , & d)                                    ;
      for(m = d % 10 ; d ; d /=10) if(d % 10 > m) m = d % 10 ;
      if(m < 7) printf("yes\n")                              ;
      else printf("no\n")                                    ;
}
      编译运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
55876
no

D:\\C>

jhq999 发表于 2022-11-3 11:30:41

#include <iostream>
using namespace std;
int main()
{
      char s,i=0;
      cin >> s;

      for(i=0;s&&s<'7';i+=1);
      if(s)cout<<">=7"<<endl;
      else cout<<"<7"<<endl;
      return 0;
}
页: [1]
查看完整版本: 一道题目