我们提供了两个数字START和END来定义一个数字范围。目标是找到[START,END]范围内所有数字之和等于给定数字Y的所有数字。
我们将通过从START到END遍历数字来做到这一点,对于每个数字,我们将使用while循环对数字的总和进行计数。如果该总和等于Y,则增加计数。
让我们通过示例来理解。
输入值
START=10 END=20 Y=4
输出结果
Numbers such that digit sum is equal to Y: 1
说明
Number 13 has digit sum equal to 4.
输入值
START=10 END=50 Y=5
输出结果
Numbers such that digit sum is equal to Y: 5
说明
Numbers 14, 23, 32, 41 and 50 have digit sum 5.
我们采用整数START,END,Y。
函数digitSum(int start,int end,int y)返回具有digitsum = y的数字的计数
对于此类数字,将初始变量计数设为0。
将变量digsum设为0
使用for循环遍历数字范围。我=开始我=结束
现在,对于每个数字num = i,使用while循环检查数字是否大于0。
计算digsum + = num%10。减少num = num / 10以添加下一个数字。
在片刻结束时,检查是否(digsum == d)。如果为真,则递增计数。
在所有循环的末尾,计数将具有满足条件的总数。
返回计数结果。
#include <bits/stdc++.h> using namespace std; int digitSum(int start, int end, int y){ int count = 0; int digsum = 0; for (int i = start; i <= end; i++){ int num=i; digsum=0; while(num>0){ digsum+=num%10; //sum of digits num=num/10; } if(digsum==y) //original number is i{ count++; //cout<<i<<" "; } } return count; } int main(){ int START = 100; int END = 1000; int Y = 5; cout <<"Numbers such that digit sum is equal to Y: "<<digitSum(START,END,Y); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Numbers such that digit sum is equal to Y: 15