C ++中范围的数字计数,其中第一个数字等于该数字的最后一个数字
给定开始和结束之间的数字范围。目的是找到第一位数等于最后一位并且在[first,last]范围内的数字计数。
如果所有数字均在范围内,则将对其进行计数。
让我们通过示例来理解。
例如
输入-开始=100,结束=200
输出-范围中的第一个数字等于该数字的最后一个数字的数字计数是:10
说明- 这些数字将是:
101、121、131、141、151、161、171、181和191。
输入-开始=1,结束=10
输出-范围中的第一个数字等于该数字的最后一个数字的数字计数是:9
说明-所有1位数字都会被计算在内。1、2、3、4、5、6、7、8、9
以下程序中使用的方法如下
如果所有数字均在[start,end]范围内,则将对其进行计数。现在,对于每个数字,请检查第一位和最后一位数字。如果第一个数字大于最后一个数字,则将8+val/10进行计数,如果较小,则将9+val/10进行计数。val是递归调用中的当前数字range(intval)。
将整数start和end作为范围变量。
设置计数=range(end)-range(start)。
函数range(intval)采用整数,并返回范围中的数字计数,其中范围的第一个数字等于该数字的最后一个数字。
将初始计数设为0。
将结尾作为最后一个数字,即val%10。
如果是单个数字(小于10),则返回val。
现在使用while循环计算为start=val%10。将val减10。因此起始处将有第一个数字。
现在,如果开始<=结束,则加9+set_val/10进行计数。
现在,如果开始>结束,则添加8+set_val/10进行计数。
最后返回结果作为计数。
示例
#include <iostream>
using namespace std;
int range(int val) {
int count = 0;
int start;
int end = val % 10;
int set_val = val;
if (val < 10) {
return val;
}
end = val % 10;
while (val) {
start = val % 10;
val = val / 10;
}
if (start <= end) {
count = 9 + set_val / 10;
} else {
count = 8 + set_val / 10;
}
return count;
}
int main() {
int start = 10, end = 50;
int count = range(end) - range(start);
cout << "其中范围的第一个数字等于最后一个数字的范围内的数字计数为: " << count;
return 0;
}如果我们运行上面的代码,它将生成以下输出
输出结果
其中范围的第一个数字等于最后一个数字的范围内的数字计数为: 4