#include <stdio.h>
long f(long n)
{
if(n!=0)
return (n%10+f(n/10));
else
return 0;
}
int main()
{
long n=1234567890;
printf("%ld\n",f(n));
return 0;
}
這個C程式的答案是45,但是我搞不懂是怎么運算的,有沒有大神幫忙解決一下
uj5u.com熱心網友回復:
遞回,相當于把n = 1234567890各個位上的數相加uj5u.com熱心網友回復:
遞回函式,n=1234567890,求得每位數字之和,1+2+3+4+5+6+7+8+9=45. return (n%10+f(n/10)); n%10取得每位數字,f(n/10) 取n下一位數字。uj5u.com熱心網友回復:
fn(123456789)===>9+fn(12345678)
9+8+fn(1234567);
9+8+7(123456);
9+8+........1;
uj5u.com熱心網友回復:
明白了,感謝
uj5u.com熱心網友回復:
明白了,感謝
uj5u.com熱心網友回復:
了解了,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269352.html
標籤:C++ 語言
