题目链接
题目大意:现在给你一个数字,让你任意切割,然后就是切割出来的数字加起来,求得就是得到的和,
思路:看队友的思路后懂的,这个题目的话,就是把一个字符串,然后进行0 1的分割,利用二进制就可以实现所有的不重复的切割了,0的时候不切割,1的时候切割,
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
char a[15];
int main()
{
scanf("%s",a);
ll ans=0;
int len=strlen(a);
int n=1<<(len-1);
for(int i=0;i<n;i++)
{
ll t=a[0]-'0';
for(int j=0;j<len;j++)
{
if(j==len-1||i&(1<<j))
{
ans+=t;
t=0;
if(j==len-1) break;
}
t=t*10+a[j+1]-'0';
}
}
printf("%lld\n",ans);
}