大家好,欢迎来到IT知识分享网。
题目描述
输入
输入包括两个数字,集合的基a(1<=a<=50))以及所求元素序号n(1<=n<=)
输出
对于每个输入,输出集合Ba的第n个元素值
样例输入 Copy
【样例输入1】 1 100 【样例输入2】 28 5437
样例输出 Copy
【样例输出1】 418 【样例输出2】
#include<iostream> #define N using namespace std; int q[N] = { 0 }; int q1[N] = { 0 }; int q2[N] = { 0 }; int s1, e1, s2, e2; int front, rear; void find(int a, int n) { q[rear] = a; rear = (rear + 1) % N; for (int i = 1; i < n; i++) { int k = q[front]; front = (front + 1) % N; int x1 = 2 * k + 1; q1[e1] = x1; e1 = (e1 + 1) % N; int x2 = 3 * k + 1; q2[e2] = x2; e2 = (e2 + 1) % N; if (q1[s1] < q2[s2]) { q[rear] = q1[s1]; s1 = (s1 + 1) % N; rear = (rear + 1) % N; } else if (q1[s1] > q2[s2]) { q[rear] = q2[s2]; s2 = (s2 + 1) % N; rear = (rear + 1) % N; } else if (q1[s1] == q2[s2]) { q[rear] = q1[s1]; s1 = (s1 + 1) % N; s2 = (s2 + 1) % N; rear = (rear + 1) % N; } } cout << q[front] << endl; } int main() { int a, n; cin >> a >> n; find(a, n); return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140151.html