ラッキーナンバーⅡ----------------------------思考(dfs)

ここに画像の説明を挿入
ここに画像の説明を挿入
分析:
プレイテーブルにより、1,000を超えるものが1e9内の要件を満たしていることが判明

だから私はそれを探し出し
、計算のために生きました

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[100005];
int cnt;
void dfs(ll x)
{
	if(x>4444444444) return ;
	a[++cnt]=x;
	dfs(x*10+4);
	dfs(x*10+7);
 } 

int main()
{
	ll l,r;
	dfs(4);
	dfs(7);
	cin>>l>>r;
	sort(a+1,a+1+cnt); 
	ll sum=0;
	for(int i=1;i<=cnt;i++)
	{
		if(a[i]>=l)
		{
			if(a[i]<r)
			{
				sum=sum+(a[i]-l+1)*a[i];
				l=a[i]+1; 
			 }
			 else
			 {
			 	sum=sum+(r-l+1)*a[i];
			 	break;
			 }
		}
	}
	cout<<sum<<endl;
}

公開された元の記事572件 賞賛された14件 ビュー10,000件以上

おすすめ

転載: blog.csdn.net/qq_43690454/article/details/105388227
おすすめ