Pat乙级1084 外观数列
生活随笔
收集整理的這篇文章主要介紹了
Pat乙级1084 外观数列
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Pat乙級(jí)1084 外觀數(shù)列
- 思路
- 注意點(diǎn)
- 代碼
題目網(wǎng)址
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120
思路
從前往后數(shù),碰到一樣的就計(jì)數(shù)。我這里用三個(gè)數(shù)組實(shí)現(xiàn),數(shù)組A存結(jié)果,B存數(shù)值,C存?zhèn)€數(shù)。例如,11,A=[1,1],B=[1],C=[2]。
注意點(diǎn)
測(cè)試點(diǎn)4的數(shù)組越界問(wèn)題。解決辦法是把數(shù)組開大,用全局變量。
C/C++中數(shù)組大小的上限: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; }總結(jié)
以上是生活随笔為你收集整理的Pat乙级1084 外观数列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: riak文件服务器,Docker中运行R
- 下一篇: 北大核心2020TP类