C 如何在50范围内找到包含4的数字?
我想知道如何找到4在一定范围内出现的次数;比如说50。 因此,如果输入范围为50,则输出应如下所示 4,14,24,34,40,41,…,49 现在很容易找到输出的前半部分,即4,14,以此类推,即以4结尾的数字C 如何在50范围内找到包含4的数字?,c,regex,C,Regex,我想知道如何找到4在一定范围内出现的次数;比如说50。 因此,如果输入范围为50,则输出应如下所示 4,14,24,34,40,41,…,49 现在很容易找到输出的前半部分,即4,14,以此类推,即以4结尾的数字 for(i=0;i<=50;i++) if(i%10==4) { printf("%d",i); } for(i=0;i根本不需要正则表达式。将整数作为字符串存储在临时变量中,然后使用 for(i=0
for(i=0;i<=50;i++)
if(i%10==4)
{
printf("%d",i);
}
for(i=0;i根本不需要正则表达式。将整数作为字符串存储在临时变量中,然后使用
for(i=0;i根本不需要正则表达式。将整数作为字符串存储在临时变量中,然后使用
对于(i=0;i您可以尝试使用一个函数重复测试数字中的每个数字,看看它是否等于4,如下所示:
int check4(int x)
{
//Units place
if (x==0)
{
return 0;
}
else if (x%10 == 4)
{
return 1;
}
//Divide by 10 so that tens place is now unit place; repeat till no more tens place
else
{
return check4(x/10);
}
}
此解决方案完全避免了字符串处理的需要
您可以尝试使用一个函数,反复测试数字中的每个数字是否等于4,如下所示:
int check4(int x)
{
//Units place
if (x==0)
{
return 0;
}
else if (x%10 == 4)
{
return 1;
}
//Divide by 10 so that tens place is now unit place; repeat till no more tens place
else
{
return check4(x/10);
}
}
此解决方案完全避免了字符串处理的需要
方法很简单:检查结尾数字是否为4,如果不是,则继续将数字除以10,直到最后一个数字为4或数字为0
采用迭代或递归方法同样容易:
伪代码(迭代):
伪代码(递归):
想法很简单:检查结尾数字是否为4,如果不是,则继续将数字除以10,直到最后一个数字为4,或数字为0
采用迭代或递归方法同样容易:
伪代码(迭代):
伪代码(递归):
你需要处理你的报价。if(i%10==4 | | i/10==4)
适用于0..139。从140开始需要更多的工作。你需要处理你的报价。if(i%10==4 | | i/10==4)
适用于0..139。从140开始需要更多的工作。谢谢。这很完美。使用字符串的解决方案也是如此,但个人更喜欢。谢谢。这很完美。使用字符串的解决方案也是如此,但个人更喜欢这样。
boolean contains4(int input) {
while (input > 0) {
if (i % 10 == 4) {
return true;
}
input /= 10;
}
return false;
}
boolean contains4(int input) {
if (input == 0) {
return false;
} else if (input % 10 == 4) {
return true;
} else {
return contains4(input / 10);
}
}