14 solutions
-
0
还是有点意思的找规律问题
#include<iostream> using namespace std; int main() { int m; cin >> m; while(m--) { int m; cin >> m; int sum = 0,num = 0,k = 0; for(int i = 1 ; i < 1000 ; i++) { sum += i; num += i-1; if(m >= num&&m <= sum) { k = i; break; } } int cnt = m - num; int fm,fz; if(k % 2 == 1) { for(int i = k , j = 1 ; ; i-- , j++) { if(j == cnt) { fz = i; fm = j; break; } } } else if(k % 2 == 0) { for(int i = 1 ,j = k ; ; i++ , j--) { if(i == cnt) { fz = i; fm = j; break; } } } cout << fz << "/" << fm << endl; } return 0; }
Information
- ID
- 155
- Time
- 3000ms
- Memory
- 128MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 445
- Accepted
- 236
- Uploaded By