題目描述 Description
所謂同構數是指這樣的數,即它出現在它的平方數的右端。例如,5的平方是25 (即5×5=25),5是25右端的數,那么5就是同構數。又如,25的平方是625(即25×25=625),同理25也是同構數。找出通過鍵盤輸入的兩個正整數N和M之間同構數的個數。
?輸入輸出格式 Input/output
輸入格式:
一行,任意給定的兩個正整數N,M
輸出格式:
一個正整數,表示[N,M]之間同構數的個數。
一行,任意給定的兩個正整數N,M
輸出格式:
一個正整數,表示[N,M]之間同構數的個數。
?輸入輸出樣例 Sample input/output
樣例測試點#1
輸入樣例:
4 10
輸出樣例:
2
說明 description
對于100%的數據:(0<N<M≤10000)
思路:這題較為簡單,循環區間中的每個數,平方后保留后幾位(根據數的位數決定),判斷相同計數器++即可;
代碼如下:
1 #include <stdio.h> 2 int fun(int a)//傳過來一個數,傳出10的位數次方 3 { 4 int i,k=1; 5 int ans=0; 6 while(a>0)//統計位數 7 { 8 ans++; 9 a=a/10; 10 } 11 for(i=0;i<ans;i++)//10的位數次方 12 { 13 k=k*10; 14 } 15 return k; 16 } 17 int main() 18 { 19 int ans=0,i; 20 int a,b; 21 int p; 22 scanf("%d%d",&a,&b); 23 for(i=a;i<=b;i++) 24 { 25 p=i*i; 26 if(i==p%fun(i)) ans++; 27 } 28 printf("%d\n",ans); 29 return 0; 30 }
?