标签:过程 scanf size scan ack ++ 应用 字符 style
题目1019:简单计算器
栈的比较经典的运用,记得用栈,队列和容器的时候,要清空,其次就是用栈的基本套路,取值,弹出,推入,输出
1 #include<stdio.h> 2 #include<stack> 3 using namespace std; 4 5 int main() 6 { 7 int a,b; 8 char c,d; 9 stack <double> s; 10 while(~scanf("%d ",&a)&&a) 11 { 12 while(!s.empty()) 13 s.pop(); 14 s.push(a); 15 while(~scanf("%c %d%c",&c,&b,&d)) 16 { 17 if(c==‘+‘) 18 s.push(b); 19 else if(c==‘-‘) 20 s.push(-b*1.0); 21 else if(c==‘*‘) 22 { 23 double tmp=s.top(); 24 //printf("%lf\n",tmp); 25 s.pop(); 26 s.push(tmp*b); 27 } 28 else if(c==‘/‘) 29 { 30 double tmp=s.top(); 31 //printf("%lf\n",tmp); 32 s.pop(); 33 s.push(tmp/b); 34 } 35 if(d!=‘ ‘) 36 break; 37 } 38 // double ans=0; 39 while(!s.empty()) 40 { 41 if(s.size()==1) 42 { 43 printf("%.2lf\n",s.top()); 44 break; 45 } 46 double tmp1=s.top(); 47 //printf("%lf\n",tmp1); 48 s.pop(); 49 double tmp2=s.top(); 50 s.pop(); 51 s.push(tmp1+tmp2); 52 } 53 //printf("%.2lf\n",ans); 54 55 56 } 57 return 0; 58 } 59
题目1018:统计同成绩学生人数
哈希数组的应用
题目1017:还是通畅工程
最小生成树不过比并查集多了一个结构体和排序
1 #include<iostream> 2 #include<algorithm> 3 #include<stdio.h> 4 #include<string.h> 5 #include<math.h> 6 #include<queue> 7 #define LL long long 8 #define PI acos(-1) 9 #define exp 1e-9 10 #define INF 0x7fffffff 11 using namespace std; 12 priority_queue <int, vector<int>, greater<int> > Q; 13 int tree[110]; 14 struct node 15 { 16 int x,y,cost; 17 friend bool operator < (node a, node b) 18 { 19 return a.cost<b.cost; 20 } 21 }list[10000]; 22 int findRoot(int x) 23 { 24 if(tree[x]==-1) 25 return x; 26 else 27 { 28 int tmp=findRoot(tree[x]); 29 tree[x]=tmp; 30 return tmp; 31 } 32 } 33 34 int main() 35 { 36 int n; 37 while(~scanf("%d",&n)&&n) 38 { 39 int m=(n-1)*n/2; 40 for(int i=0; i<m; i++) 41 { 42 scanf("%d %d %d",&list[i].x,&list[i].y,&list[i].cost); 43 } 44 sort(list,list+m); 45 for(int i=1; i<=n; i++) 46 tree[i]=-1; 47 int ans=0; 48 for(int i=0; i<m; i++) 49 { 50 int a=findRoot(list[i].x); 51 int b=findRoot(list[i].y); 52 if(a!=b) 53 { 54 tree[a]=b; 55 ans+=list[i].cost; 56 } 57 } 58 printf("%d\n",ans); 59 } 60 return 0; 61 }
题目1016:火星A+B
题目思路很简单,一个素数筛,一个字符串转化为数组并进行模的过程
题目1015:还是A+B
其实就是不断取最后一位的过程
1 #include<iostream> 2 #include<algorithm> 3 #include<stdio.h> 4 #include<string.h> 5 #include<math.h> 6 #include<queue> 7 #include<set> 8 #include<map> 9 #define LL long long 10 #define PI acos(-1) 11 #define exp 1e-9 12 using namespace std; 13 priority_queue <int, vector<int>, greater<int> > Q; 14 15 16 int main() 17 { 18 int a,b,k; 19 int a1,b1; 20 while(~scanf("%d %d %d",&a,&b,&k)) 21 { 22 if(a==0&&b==0) 23 break; 24 int i; 25 int ans=a+b; 26 for(i=0; i<k; i++) 27 { 28 a1=a%10; 29 b1=b%10; 30 if(a1!=b1) 31 break; 32 a/=10; 33 b/=10; 34 } 35 if(i==k) 36 printf("-1\n"); 37 else 38 printf("%d\n",ans); 39 } 40 return 0; 41 }
标签:过程 scanf size scan ack ++ 应用 字符 style
原文地址:http://www.cnblogs.com/JiaoZha/p/7523400.html