gpt4 book ai didi

c - 仅使用递归来执行此操作

转载 作者:行者123 更新时间:2023-11-30 21:48:10 27 4
gpt4 key购买 nike

编写一个递归函数evenDigits,它接受整数参数n,并以相同的顺序返回一个仅包含n中偶数位的新整数。如果n不包含偶数,则返回0。

例如,调用evenDigits(8342116)应返回8426,调用evenDigits(35179)应返回0。

最佳答案

这是我的五美分。:)

#include <stdio.h>

int evenDigits( int n )
{
const int Base = 10;

int digit = n % Base;

int even = digit % 2 == 0;

if ( !even ) digit = 0;

return ( n /= Base ) == 0 ? digit
: ( even ? Base : 1 ) * evenDigits( n ) + digit;
}

int main(void)
{
printf( "evenDigits( 8342116 ) = %d\n", evenDigits( 8342116 ) );
printf( "evenDigits( -8342116 ) = %d\n", evenDigits( -8342116 ) );
printf( "evenDigits( 35179 ) = %d\n", evenDigits( 35179 ) );
printf( "evenDigits( -35179 ) = %d\n", evenDigits( -35179 ) );

return 0;
}

程序输出为

evenDigits( 8342116 ) = 8426
evenDigits( -8342116 ) = -8426
evenDigits( 35179 ) = 0
evenDigits( -35179 ) = 0

关于c - 仅使用递归来执行此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60125188/

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