首页 > 代码库 > pat (basic level)题解

pat (basic level)题解

想要锻炼自己的代码能力,看自己能否用最简练的代码AC。下面开始:

1006

简单的字符转换没什么难度

 1 #include<iostream> 2 using namespace std; 3 int main(){ 4     int n; 5     cin >> n; 6     int bai,shi,ge; 7     bai = n / 100; 8     shi = (n - bai * 100) / 10; 9     ge = n % 10;10     for(int i = 0; i < bai; i ++){11         cout << B;12     }13     for(int i = 0; i < shi; i++){14         cout << S;15     }16     for(int i = 0; i < ge; i++){17         cout << i + 1;18     }19     return 0;20 }

1007

这里主要是不要偷懒质数一定要循环到sqrt(n)才好,其次是要判定i+2有没有越界这是个坑要注意。

 1 #include<iostream> 2 #include<math.h> 3 using namespace std; 4 bool check(int n){ 5     bool flag = true; 6     for(int i = 2; i <= sqrt(n); i++){ 7         if(n % i == 0){ 8             flag = false; 9             break;10         }11     }12     return flag;13 }14 int main(){15     int n;16     cin >> n;17     int sum = 0;18     for(int i = 2; i < n; i++){19         if(check(i)){20             if(check(i + 2) && (i + 2) <= n) ++sum;21         } 22     }23     cout << sum;24     return 0;25 }

1008逻辑移位,注意取模

 1 #include<iostream> 2 using namespace std; 3 int main(){ 4     int n, m; 5     cin >>n >>m; 6     int a[n]; 7     for(int i = 0; i < n; i++){ 8         cin >> a[i]; 9     }10     int t = (-m % n) + n;11     for(int i = 0; i < n; i++){12         cout << a[((t + i) % n)];13         if(i == n - 1) continue;14         cout << " ";15     }16     return 0;17 }

 

pat (basic level)题解