解题思路:
用栈转进制,然后传给数组,遍历数组,符合条件就用ans计数
感觉我做的有些复杂了,虽然提交之后通过了,但过于复杂。
进制这块还是掌握的太差了。
参考代码:
#include"iostream" #include"stdio.h" #include"stack" using namespace std; stack<int> p; int a[11111]; int ans=0; void change(int z) { int k = 0; while (z) { p.push(z % 2); z /= 2; } while (!p.empty()) { a[k] = p.top(); k++; p.pop(); } for (int i = 0;i < k;i++) { if (a[i] == 1) ans++; } } int main() { int L, R; cin >> L >> R; for (int i = L;i <= R;i++) { change(i); } cout << ans; return 0; }
0.0分
0 人评分
字符逆序 (C语言代码)浏览:638 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:633 |
母牛的故事 (C语言代码)浏览:715 |
C语言训练-数字母 (C语言代码)浏览:602 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:467 |
演讲大赛评分 (C语言代码)浏览:1632 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:570 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:577 |
一元一次方程 (C语言代码)浏览:4066 |
淘淘的名单 (C语言代码)浏览:1228 |