问题标题: 酷町堂:1023

0
0
已解决
程祺然
程祺然
初级光能
初级光能

22分!

我的代码:

#include<iostream>
using namespace std;
int main()
{
    int n;
    int cnt=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        if(i%10==1||i==1){
            cnt++;
        }
        else if(i>=10&&i<20){
            cnt++;
        }
        else if(i>=100&&i<200){
            cnt++;
        }
        else if(i>=1000&&i<2000){
            cnt++;
        }
    }
    cout<<cnt;
    return 0;
}

求解答!

我有链接


1
已采纳
陈九林
陈九林
高级守护
高级守护
  • 嘿!老程。
  • 这有个主函数代码献给你 orz

 

  • 等等,
  • 我先给你的代码提2个问题
  • 1、不要加“else-”
  • 不要用else-if!
  •  
  • 2、你的代码怕是真的有很大的毛病!
  • 额~
  • 你写了这么多的“if”就没一个对过
  • ……
  • 总之,看看我的吧

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

 

 

 

 

 

 

 

 

 

  • int main(){
  • cin>>n;
  • for(int i=1;i<=n;i++){
  • if(i%10==1){
  • cnt++;
  • }
  • if(i/10%10==1){
  • cnt++;
  • }
  • if(i/100%10==1){
  • cnt++;
  • }
  • if(i/1000%10==1){
  • cnt++;
  • }
  • if(i/10000==1){
  • cnt++;
  • }
  • }
  • cout<<cnt;
  • return 0;
  • }

 

望采纳  @程祺然

 

0
李素妍
李素妍
新手天翼
新手天翼
cnt+=f(i);

循环的唯一一个句子给你了

0
刘宇唐
刘宇唐
中级守护
中级守护

用循环取位数,你后面2个else if都不对

不要用暴力

0
吴庞茂旭
吴庞茂旭
资深光能
资深光能

哇!有人发完整代码!我都举报不过来了!

0
黄子扬
黄子扬
初级天翼
初级天翼

你这没有考虑含有多个1的数吧

0
褚俊皓
褚俊皓
新手天翼
新手天翼

循环取位数,不用else if

我要回答