POJ 1247 数组首尾求和判定相等 枚举法

此题把题意弄懂后就很容易,S顺时针走,E逆时针走,确定一个分割点该处两人相遇时途经的客人数之和相等,直接枚举。

#include <iostream> using namespace std; //s顺时针走,e逆时针走,问他们在哪里相遇时路径上面经过的数字之和相等 //直接用枚举法 int main(){ int table[32]; int n,sum1,sum2,i,j; while(cin>>n,n!=0){ for (i = 1;i <= n;i++) cin>>table[i]; for (i = 1;i <= n;i++) { sum1 = 0; sum2 = 0; for (j = 1;j <= i;j++) sum1 += table[j]; for (j = n;j > i;j--) sum2 += table[j]; if (sum1 == sum2) { cout<<"Sam stops at position "<<i<<" and Ella stops at position "<<i+1<<"."<<endl; break; } } if (sum1 != sum2) { cout<<"No equal partitioning."<<endl; } } return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值