首页 > 代码库 > 每日编程-20170308
每日编程-20170308
题目:从1开始到N个自然数中,0-9每个数字出险次数进行统计。(昨天做的牛客网统一考试题)
输入:N
输出要求: 输出10个数字对应的出现次数,以空格为间隔,最后一个数字后面不加空格
解答:
1 #include <iostream> 2 using std::cout; using std::endl; using std::cin; 3 int main() { 4 int c[10] = { 0 }; //初始化数组用于存放每个数字出现次数,0开始 5 int number; 6 cin >> number; //输入N 7 for (auto i = 1; i <= number; i++) //遍历1到N 8 { 9 int j = i; //设置i的副本,避免改变i 10 do { 11 c[j % 10]++; 12 j /= 10; 13 } while (j!= 0); //页数每次取10的余数,然后除10,直到为0 14 } 15 for (auto i = 0; i < 10;i++) //遍历数组 16 { 17 cout << c[i]; //输出 18 if (i != 9) 19 { 20 cout << " "; //除了最后一个元素,其他元素后加空格 21 } 22 } 23 }
改进:
do while完全没必要,没有页码0
1 #include <iostream> 2 using std::cout; using std::endl; using std::cin; 3 int main() { 4 int c[10] = { 0 }; 5 int number; 6 cin >> number; 7 for (auto i = 1; i <= number; i++) 8 { 9 int j = i; 10 while (j!=0) 11 { 12 c[j % 10]++; 13 j /= 10; 14 } 15 } 16 for (auto i = 0; i < 10;i++) 17 { 18 cout << c[i]; 19 if (i != 9) 20 { 21 cout << " "; 22 } 23 } 24 }
每日编程-20170308
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。