AcWing 1026. 乘积最大 暴搜 DFS

乘积最大
在这里插入图片描述
在这里插入图片描述

🤠 DFS参数 数位 乘号 结果

import java.util.Scanner;

public class Main
{
	static int n, ans;
	static String s;

	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		int k = sc.nextInt();
		s = sc.next();
		dfs(0, k, 1);
		System.out.println(ans);
	}

//	x 是第几位数,k是还剩下多少个 乘号,sum 是结果
	private static void dfs(int x, int k, int sum)
	{
//		当数位用完了,或者乘号用完了
		if (x >= n | k < 0)
		{
			if (k < 0)
				ans = Math.max(ans, sum);
			return;
		}
		int ss = 0;
		for (int i = x; i < n; i++)
		{
			ss = ss * 10 + s.charAt(i) - '0';
			dfs(i + 1, k - 1, sum * ss);
		}

	}
}
posted @ 2023-04-02 11:48  兑生  阅读(20)  评论(0)    收藏  举报  来源
Live2D