40分求助

B2068 统计满足条件的 4 位数

raoweihua @ 2024-11-30 09:41:35

#include<bits/stdc++.h>
using namespace std;
int n,a[1000],sum=0,z,m,x,y;//z为个位,y为十位,x为百位,m为千位
int main(){
    cin>>n;
    for(int i=0;i<=n;i++){
        cin>>a[i];
    }
    for(int i=0;i<n;i++){
        m=a[i]%1000;//千位
        x=a[i]/1000%100;//百位
        y=a[i]%100/10;//十位
        z=a[i]%10;//个位
        if((z-m-x-y)>0){//判断并累加
            sum++;
        }
}
    cout<<sum<<endl;
    return 0;
}

哪位大佬帮我看一下?谢谢!


by Arefa @ 2024-11-30 10:02:16

  1. 输入数据时,for(int i=0;i<=n;i++)中,i<=n 应该成 i<n
  2. m=a[i]%1000并不能正确的获取千位。例如对于 a[i]=1234m=a[i]\%1000=234。应更改为m=a[i]/1000
  3. x=a[i]/1000%100并不能正确获取百位。例如对于 a[i]=1234x=a[i]/1000\%100=1\%100=1。应更改为x=a[i]%1000/100或者x=a[i]/100%10

by raoweihua @ 2024-12-01 08:39:14

@Arefa好的,谢谢大佬的指导


|