東北農業大學春季賽校賽——wyh的數字(輸出各位上數字)
輸入描述:
輸入第一行一個整數T(1<=T<=10)
接下來有T組測試資料,對於每組測試資料,輸入一個整數n(1<=n<=10000000000)
輸出描述:
對於每組測試資料,輸出對應答案
示例1
輸入
2
1234567
123456
輸出
1
0
#include<iostream> #include<cmath> typedef long long ll; using namespace std; int main() { int bit; int T; ll n; cin >> T; while (T--) { int ans = 0; cin >> n; for (int i = 1; i <= 11; i++) { ll A = (ll)pow(10, i); ll B = (ll)pow(10, i - 1); bit = n % A / B; if (bit == 7) { ans++; } } cout << ans << endl; } return 0; }
起初求各位上的數字使用的是bit=n%(int)pow(10,i)/(int)pow(10,i-1)
對於最大的測試樣例10000000000不能通過。
後分離出int A=(int)pow(10,i);int B=(int)pow(10,i-1);
進行測試cout<<A<<" "<<B<<" "<<i<<endl;
找出原因10000000000溢位。所以統一都改為long long
發現自己有一個很簡單的點不清楚,就是對一些基本資料型別的大小範圍(汗顏啊)