码迷,mamicode.com
首页 > 其他好文 > 详细

ACM练手

时间:2016-05-30 23:09:22      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4 #define N 100
 5 class stack
 6 {
 7     char s[N];
 8     int top;
 9 public:
10     stack() { top = -1; }
11     void push(char p) { top++; s[top] = p; }
12     void pop() { top--; }
13     char seek() { return s[top]; }
14     bool empty() { if (top == -1)return true; return false; }
15 };
16 void check(char* temp)
17 {
18     stack p;
19     if (temp[0] == ) || temp[0] == ])
20         cout << "no" << endl;
21     else
22     {
23         for (int i = 0; i < strlen(temp); i++)
24             if (temp[i] == ( || temp[i] == [)
25                 p.push(temp[i]);
26             else if (temp[i] == ) || temp[i] == ])
27             {
28                 if (temp[i] == )&&p.seek() == ()
29                     p.pop();
30                 else if(temp[i] == ]&&p.seek() == [)
31                     p.pop();
32                 else
33                 {
34                     cout << "no" << endl;
35                     return;
36                 }
37             }
38         if(p.empty())
39             cout << "yes" << endl;
40         else
41             cout << "no" << endl;
42     }
43 }
44 int main()
45 {
46     char s[10];
47     int n; cin >> n;
48     for (int i = 0; i < n; i++)
49     {
50         cin >> s;
51         check(s);
52     }
53     return 0;
54 }
 1 #include<iostream>
 2 #include<cstring>
 3 #define maxsize 10000
 4 using namespace std;
 5 int a[maxsize];
 6 int main()
 7 {
 8 
 9 
10     int m;
11     cin >> m;
12     a[1] = 1;
13     long long delta = 0, pos = 1;//pos为此刻进位到哪,由于delta用于进位累加,故long
14     for (int i = 1; i <= m; i++)//让a[]从1乘到m
15     {
16         delta = 0;
17         for (int j = 1; j <= pos; j++)
18          {
19 
20             a[j] = a[j] * i + delta;
21             delta = a[j] / 10;//个位之前
22             a[j] = a[j] % 10;//个位
23 
24         }
25         if (delta != 0)//进位
26         {
27             while (delta) {//对进位进行循环,确保进位大于9时完全进位上去
28                 a[pos + 1] = delta % 10;
29                 delta = delta / 10;
30                 pos = pos + 1;
31             }
32         }
33     }
34 
35 
36 
37     for (int i = pos; i >= 1; i--)
38     {
39         cout << a[i];
40      }
41     
42 }

 

 

ACM练手

标签:

原文地址:http://www.cnblogs.com/yuelien/p/5543935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!