Ejemplo n.º 1
0
/* 三項演算子を使えば、再帰版num_of_one は次のように掛けます */
int num_of_one(unsigned long value)
{
	if(value == 0){
		return 0;
	}
	return ( ((value%10) == 1) ? 1 : 0) + num_of_one(value/10);
}
Ejemplo n.º 2
0
int num_of_one(unsigned long value) {
    int ret;
    /* valueが0桁(もうこれ以上解析する桁がない) */
    if(value == 0) {
        return 0;
    }
    if(value % 10 == 1) {     /* いちばん下の位が1 */
        ret = 1;
    } else {
        ret = 0;
    }

    /* 10で割って桁を1つずらし,再びnum_of_one()で調べる */
    return ret + num_of_one(value / 10);
}
Ejemplo n.º 3
0
/* num_of_one(ver: recursive) */
int num_of_one(unsigned long value)
{
	int ret;
	/* valueが0桁(もうこれ以上解析する桁がない */
	if(value == 0){
		return 0;
	}
	if(value % 10 == 1){	/* 一番下の桁が1 */
		ret = 1;
	}else{
		ret = 0;
	}

	/* 10で割って桁を1つずつずらし、再びnum_of_one()で調べる */
	return ret+num_of_one(value/10);
}