gpt4 book ai didi

c++ - 用递归计算数字的位数

转载 作者:行者123 更新时间:2023-11-30 05:48:35 25 4
gpt4 key购买 nike

#include<iostream>
using namespace std;

bool recursion(int numb, int k, int br)
{
if(br==1) return (numb==k);
return k==(numb%10) || recursion(numb/10,k,br-1);

}

int main(){
int num,n;
cin>>num;
n=num;
int p;
cin>>p;
int br=1;
while(n>10){
n=n/10;
br++;
}
cout<<br<<endl;
cout<<recursion(num,p,br);
return 0;
}

这是计算数字位数的完整程序,但它不适用于超过 10 位的数字。有人知道为什么吗?

最佳答案

首先,您的递归程序不会计算数字中的数字,它会检查特定数字 k 是否出现在数字 的最后 br 数字中> NumPy

它不适用于十位以上的数字,因为 int 可以表示的系统上最大的数字有十位。在 32 位系统上,它是 2,147,483,647

要让它处理更多数字,请使用更大的数据类型 - 例如,long longuint64_t

关于c++ - 用递归计算数字的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com