题目链接:http://exam.upc.edu.cn/problem.php?id=6467
题意:给你一个数字,在数字里任意加+号,问所有情况下,这个sum是多少
我本来想了一种,后来发现这个题真的有意思。
我有4种方法。
第一种:自己写的,枚举 len从1~n。出现的个数和 +号的位置有关。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[100];
int len;
ll f(int pos,int L){
ll ret=0,ed=pos+L-1;
for(int i=pos;i<=ed;i++){
ret=ret*10+(s[i]-'0');
}
return ret;
}
int main()
{
ll n;
scanf("%s",s+1);
len=strlen(s+1);
sscanf(s+1,"%lld",&n);
ll ans=0,tmp;
for(int i=1;i<=len;i++){
for(int j=1;j+i-1<=len;j++){
int cur=len-i-1;
if(1<j&&j<len-i+1){