题目描述
千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。
例如:数字,可以书写成12,345,678
再如:数字2022,可以书写成2,022
其中的逗号称作千分符。
现在按照顺序,Alice写下11到nn之间(包括nn)的所有数字,千分符总共出现了多少次?
输入格式
输出格式
一个整数。
样例输入
样例1: 999 样例2: 1000 样例3: 1010
讯享网
样例输出
讯享网样例1: 0 样例2: 1 样例3: 11
#include <iostream> #include <stdio.h> using namespace std; long long e[]{0,1000,,,00ll,00000ll};//加上ll是因为数字自动会以int来遍历 ,不加的话会出现随机数 long long ans; long long n; int main() { cin>>n;//输入n int num=5;//设置 循环次数 循环次数跟数组储存的量有关 也和千位分隔符的数量有关 while(num>=0)//开始循环 遍历6次 { if(n>=e[num])//输入的数与数组里的数进行对比 { ans+=(n-e[num]+1)*num;//从大到小开始遍历 n=e[num]-1;//记录完每段分隔符之后更新n的值 } num--;//进行下一次遍历 } cout<<ans;//输出答案 return 0; }
有错误的地方或者有更好的想法的话敬请指正

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15142.html