float Rhythm::findTempo(vector<int> peaks) { if (peaks.empty()) return 0.f; float min = findRemainder(peaks, peaks.at(0)); int minPos = 0; for (unsigned i = 1; i < peaks.size(); i++) { float result = findRemainder(peaks, peaks.at(i)); if (result < min) { min = result; minPos = i; } } return 60.f / (peaks.at(minPos) * m_stepSize / m_sampleRate); }
int main(){ int numCases(0); scanf("%d\n", &numCases); while(numCases--){ long first(0); scanf("%ld ", &first); std::vector<int> second; char temp; while(scanf("%c", &temp)){ if(temp == '\n'){break;} second.push_back(temp - '0'); } if(first == 0){for(int k = 0; k < second.size(); k++){printf("%d", second[k]);}; puts("");} else if(first == 1){puts("1");} else{printf("%ld\n", gcd(first, findRemainder(second, first)));} } return 0; }