朝风捕露 2022-04-03 21:28 采纳率: 92.3%
浏览 16
已结题

输出的答案有误,请问是哪里写错了啊

img


img

#include <iostream>
#include <math.h>
using namespace std;
bool panduan(int i){//判断不含7 
    int b[100];
    int j=0;
    while(i){
        int ret=i%10;
        b[j]=ret;
        j++;
        i/=10;
    }
    for(int r=0;r<sizeof(b)-1;r++){
        if(b[r]==7)
        return false; 
    }
    return true;
}
int rbajinzhi(int i){//将十进制转换成八进制 
    int o=0;
    int j=0;
    int n=0;
    if(i<=7)
        o=i;
    else
    {
        while(i>7){ 
            j=i%8;
            i=i/8;
            o=j*pow(10,n)+o;
            n++;
        } 
    }
    o=o+i*pow(10,n);
    return o;
}
int main(){
    int N;
    cin>>N;
    int count=0;
    for(int i=1;i<=N;i++){
        if(panduan(i)||panduan(rbajinzhi(i))){
            count++;
        }
    }
    cout<<count;
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 技术专家团-Bamboo 2022-04-03 21:49
    关注

    不需要使用数组,在你的代码上改了改,一个函数判断十进制是否含7,一个函数判断八进制是否含7

    #include <iostream>
    #include <math.h>
    using namespace std;
    bool panduan(int i){//判断十进制不含7 
        while(i){
            if(i%10==7)
                return false;
            i/=10;
        }
        return true;
    }
    int rbajinzhi(int i){//判断八进制不含7 
        while(i){
            if(i%8==7)
                return false;
            i/=8;
        }
        return true;
    }
    int main(){
        int N;
        cin>>N;
        int count=0;
        for(int i=1;i<=N;i++){
            if(panduan(i)&&rbajinzhi(i)){
                count++;
            }
        }
        cout<<count;
        return 0;
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 4月3日

悬赏问题

  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败