计算C ++中具有相同的第一位和最后一位数字的数字
给我们一个间隔[first,last]。目的是找到在此间隔内具有相同的第一位和最后一位数字的数字计数。例如,232的开头和结尾数字与2相同。
我们将通过从i=first遍历到i=last来完成此操作。对于每个数字,我将其第一个数字与最后一个数字进行比较,如果它们相同,则增加计数。
让我们通过示例来理解。
输入-first=8last=40
输出-具有相同的首尾数字的数字计数-5
说明-8到40之间的数字,第一位和最后一位相同-
8, 9, 11, 22, 33
输入-first=100last=200
输出-相同的首尾数字数量:5
说明-100到200之间的数字,第一位和最后一位相同-
101, 111, 121, 131, 141, 151, 161, 171, 181, 191.
以下程序中使用的方法如下
我们先取两个整数,再定义范围[first,last]。
函数getFirstDigit(intnum)接受一个数字并返回其第一位数。
当num>=10时,将num除以10。在num的末尾将有第一位数字。返回此值。
函数getCount(intfst,intlst)接受范围变量,并返回具有相同的第一位和最后一位数字的数字的计数。
将初始计数设为0。
使用for从i=fst到i=lst的循环开始,对于每个循环,我都通过调用getFirstDigit(i)来计算它的第一位数并存储在fdigit中。(fdigit=getFirstDigit(i))。
计算最后一位为ldigit=i%10。
如果ldigit==fdigit,则表示它们相同。增量计数。
返回计数作为结果。
示例
#include <bits/stdc++.h> using namespace std; //查找起始数字 int getFirstDigit(int num){ while (num >= 10) { num = num/ 10; } return num; } int getCount(int fst,int lst){ int count=0; for(int i=fst;i<=lst;i++){ int fdigit=getFirstDigit(i); int ldigit=i%10; //to get last digit if(fdigit==ldigit) //if both are equal increment count { ++count; } } return count; } int main(){ int first = 10, last = 23; cout<<"相同的第一位和最后一位数字:"<<getCount(first, last); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
相同的第一位和最后一位数字:2