zoukankan      html  css  js  c++  java
  • 课题练习——找从1到N出现的1的个数

    #include<iostream.h>
    #include<conio.h>
    int Sum1(int n)
    {
    int count = 0; //记录1的个数
    int factor = 1; //标记,逐位计算1的个数

    int Lower = 0;
    int Curr = 0;
    int Higher = 0;

    while ( n/factor != 0) //每次计算Lower Curr Higher的值
    {
    Lower = n - (n/factor) * factor;
    Curr = (n/factor) % 10;
    Higher = n / (factor*10);

    switch (Curr)
    {
    case 0:
    count += Higher * factor;
    break;
    case 1:
    count += Higher * factor + Lower +1;
    break;
    default:
    count += (Higher +1)*factor;
    break;
    }
    factor *= 10;
    }
    return count;
    }

    int main()
    {
    int num;
    int jixu;
    cout<<"请输入要搜索的整数:"<<endl;
    cin>>num;
    cout<<"从1到此整数出现的1的个数为:"<<Sum1(num)<<endl;
    cout<<"是否要继续测试:(0,退出 1,继续)"<<endl;
    cin>>jixu;
    if(jixu==1)
    {
    cout<<endl;
    main();
    }
    else
    {
    return 0;
    }
    getch();
    return 0;
    }

    四,程序运行

    五,实验总结:

    这次课堂练习老师拿出课上的时间让我们一起找规律,相当于告诉了我们实验思路。有了具体的思路,接下来做题就比较顺畅了,加上与小伙伴的讨论,于是做出来实验。

  • 相关阅读:
    Codeforces 1149 B
    Tenka1 Programmer Contest 2019 D
    BZOJ 1001 [BeiJing2006]狼抓兔子
    Codeforces 741 D
    HDU 5306 Gorgeous Sequence
    HDU 6521 Party
    Codeforces 912A/B
    Educational Codeforces Round 35 B/C/D
    Codeforces 902D/901B
    Codeforces 902B
  • 原文地址:https://www.cnblogs.com/xiaojin123/p/4468733.html
Copyright © 2011-2022 走看看