Many Formulas(暴力+有技巧)

这是一道关于数字求和的题目,通过四种不同的方法解决:1) 枚举加号位置;2) 利用二进制表示加号;3) 字符串操作添加加号;4) 广度优先搜索(BFS)。每种方法都有其独特思路。
摘要由CSDN通过智能技术生成

题目链接: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){
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值