蓝桥杯算法——DP(打卡第31天)

0ms 2023-03-09 20:59:29

                                                     01题目数字三角形


//如下所示为一个数字三角形。请编一个程序计算从顶到底的某处的一条路径,使该路径所经过的数字总和最大。只要求输出总和。
// 1、 一步可沿左斜线向下或右斜线向下走;
// 2、 三角形行数小于等于100;
// 3、 三角形中的数字为0,1,…,99;
//测试数据通过键盘逐行输入,如上例数据应以如下所示格式输入:
//5
//7
//3 8
//8 1 0
//2 7 4 4
//4 5 2 6 5
//答案:30

代码:


//方法3:dp做法
//#include<iostream>
//#include<string.h>
//using namespace std;
//int  main() {
//	int n;
//	scanf("%d", &n);
//	int a[n][n];
//	memset(a, 0, sizeof(a));
//	for (int i = 0; i < n; i++)
//		for (int j = 0; j <= i; j++)
//			cin>>a[i][j];
//	int dp[n][n];
//	memset(dp, 0, sizeof(dp));
//
//	for (int i = 0; i < n; i++) {
//		dp[n - 1][i] = a[n - 1][i];
//	}
//
//	for (int i = n - 2; i >= 0; i--) {
//		for (int j = 0; j <= i; j++)
//			dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + a[i][j];
//	}
//	cout << dp[0][0] << endl;
//	return 0;
//}

                                                               02.约数个数

直接上代码:

//6的约数是1,2,4,6共四个 
//#include<stdio.h>
//int main()
//{
//	int n,i,count=0;
//	scanf("%d",&n);
//	printf("约数分别是:");
//	for(i=1;i<=n;i++)
//	{
//		if(n%i==0){
//		printf("%d ",i);
//		count++;
//		}
//	}
//	printf("\n共%d个约数",count);
//	
//}
//#include<stdio.h>
//int main()
//{
//	int n,i,count=0;
//	scanf("%d",&n);
//	printf("约数分别是:");
//	for(i=1;i<=n/2;i++)
//	{
//		if(n%i==0){
//		printf("%d ",i);
//		count++;
//		}
//	}
//	printf("%d",n);
//	printf("\n共%d个约数",count+1);
//	
//}
//#include<stdio.h>
//int main()
//{
//	int n,i,count=0;
//	scanf("%d",&n);
//	for(i=1;i*i<=n;i++)
//	{
//		if(n%i==0){
//	     if(i*i==n) count++;
//		else count+=2;
//		}
//	}
//	printf("共%d个约数",count);
//	
//}

总结:有能力的人,不会在意环境!

...全文
20 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

30,348

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧