Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在50范围内找到包含4的数字?_C_Regex - Fatal编程技术网

C 如何在50范围内找到包含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

我想知道如何找到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;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);
    }
}