测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25814. 数位求和

填空题 容易

题目描述

数位求和

题目描述

给定两个正整数N和M(N<M),统计N到M之间(包含N和M)的正整数中,各个位上的数字之和为8的有多少个。

如:N=100,M=150,100到150之间有5个数,各个位上的数字之和为8。分别是107、116、125、134、143。

输入描述

输入两个正整数N和M(100≤N<M≤801),且正整数之间以一个空格隔开。

输出描述

输出一个整数,表示N到M之间(包含N和M)的正整数中有多少个各个位上的数字之和为8。

样例输入

100 150

样例输出

5

参考答案

#include <iostream> using namespace std; int main() { int n, m; int ans = 0; cin >> n >> m; for (int i = n; i <= m; i++) { int sum = 0; int k = i; while (k) { sum += k % 10; k /= 10; } if (sum == 8) { ans++; } } cout << ans << endl; return 0; }

答案解析

//答案2

#include <iostream>

using namespace std;

int main() {

 int a, b;

 cin >> a >> b;

 int cnt = 0;

 for (int i = a; i <= b; i++)

   if ((i % 10 + i / 10 % 10 + i / 100) ==

       8) // 算式分别为i的个位,十位,百位数字

     cnt++;

 cout << cnt;

 return 0;

}

上一题 下一题