Home11月26日:t^t(2)
阿新 • • 發佈:2018-12-20
Description
T^T這個很像一個流淚的表情是不是!其實,它是T的T次方啦~。
當T比較大的時候T^T會非常大,現在只要你求這個數一共有多少位就可以了。
Input
輸入包括多組測試資料,每個測試資料只有一個數字T(0<T<2^31)
Output
請輸出T^T的一共有多少位數。
Sample Input 1
3
5
Sample Output 1
2
4
C語言思路
- 因為t^t可能會特別大,我們不能直接計算出它的值。但我們可以用取對數的方法來得到它的位數。
- 在十進位制,資料每向左走一位就是擴大了十倍,每一位的位權都是十的倍數。所以直接取這個數以十為底的對數,取整再加一即可。
- 注意資料型別,因為t需要較高的精度,所以應宣告t為雙精度浮點數,為了減小計算強度,我們可以把指數取下,放到對數前。
- 即位數為t*log10(t)+1
#include<stdio.h>
#include<math.h>
int main()
{
double t;
long int s;
while(scanf("%lf",&t)!=EOF)
{
s=t*log10(t)+1;
printf("%ld\n",(int)s);
}
return 0;
}