Pat乙级1084 外观数列
生活随笔
收集整理的這篇文章主要介紹了
Pat乙级1084 外观数列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Pat乙級1084 外觀數列
- 思路
- 注意點
- 代碼
題目網址
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120
思路
從前往后數,碰到一樣的就計數。我這里用三個數組實現,數組A存結果,B存數值,C存個數。例如,11,A=[1,1],B=[1],C=[2]。
注意點
測試點4的數組越界問題。解決辦法是把數組開大,用全局變量。
C/C++中數組大小的上限:https://blog.csdn.net/zfjBIT/article/details/88638547
代碼
#include<iostream> #include<algorithm> #define MAX 1000000using namespace std;int A[MAX]; int B[MAX]; int C[MAX];int main() {int n;int data;int len = 1;int index;int cnt;cin >> data >> n;A[0] = data;for (int i = 1; i < n; i ++) {index = 0;cnt = 1;for (int j = 0; j < len; j ++) {if (j + 1 < len && A[j] == A[j + 1]) {cnt ++;} else {B[index] = A[j];C[index] = cnt;cnt = 1;index ++;}}for (int k = 0; k < index * 2; k += 2) {A[k] = B[k / 2];A[k + 1] = C[k / 2];}len = index * 2;}for (int i = 0; i < len; i ++) {cout << A[i];}return 0; }總結
以上是生活随笔為你收集整理的Pat乙级1084 外观数列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: riak文件服务器,Docker中运行R
- 下一篇: 北大核心2020TP类