求哪位大佬帮我详细解释一下这个代码的思路,有点迷 50
求哪位大佬帮我详细解释一下这个代码的思路,有点迷#include<cstdio>#include<iostream>#include<algorithm>#include...
求哪位大佬帮我详细解释一下这个代码的思路,有点迷#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int INF = 1<<30;
const int N = 20;
int n, r[N];
double pos[N];
double sum;
void dfs(int index) {
if(index == n+1) {
int r1, r2;
for(int i = 1; i <= n; i++) {
pos[i] = r[i];
for(int j = 1; j < i; j++) {
r1 = r[i];r2 = r[j];
pos[i] = max(pos[i], pos[j]+sqrt((r1+r2)*(r1+r2)-(r1-r2)*(r1-r2)));
}
}
sum = min(sum, pos[n]-pos[1]+r[1]+r[n]);
return;
}
for(int i = index; i <= n; i++) {
swap(r[index], r[i]);
dfs(index+1);
swap(r[index], r[i]);
}
}
int main() {
scanf("%d", &n);
sum = INF;
for(int i = 1; i <= n; i++)
scanf("%d", &r[i]);
dfs(1);
printf("%lf\n", sum);
return 0;
} 展开
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int INF = 1<<30;
const int N = 20;
int n, r[N];
double pos[N];
double sum;
void dfs(int index) {
if(index == n+1) {
int r1, r2;
for(int i = 1; i <= n; i++) {
pos[i] = r[i];
for(int j = 1; j < i; j++) {
r1 = r[i];r2 = r[j];
pos[i] = max(pos[i], pos[j]+sqrt((r1+r2)*(r1+r2)-(r1-r2)*(r1-r2)));
}
}
sum = min(sum, pos[n]-pos[1]+r[1]+r[n]);
return;
}
for(int i = index; i <= n; i++) {
swap(r[index], r[i]);
dfs(index+1);
swap(r[index], r[i]);
}
}
int main() {
scanf("%d", &n);
sum = INF;
for(int i = 1; i <= n; i++)
scanf("%d", &r[i]);
dfs(1);
printf("%lf\n", sum);
return 0;
} 展开
2个回答
展开全部
#include"stdio.h"
int GetApple(int a[],int height,int n)
{
int i;
n=0;
for(i=0;i<10;i++)
{
if(a[i]<=height)
n++;
}
return n;
}
int main()
{
int i,a[10],height=30,h,n=0;
printf("输入10个苹果的高度:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("\n输入淘淘的身高");
scanf("%d",&h);
height+=h;
n=GetApple(a,height,n);
printf("%d\n",n);
return 0;
}
int GetApple(int a[],int height,int n)
{
int i;
n=0;
for(i=0;i<10;i++)
{
if(a[i]<=height)
n++;
}
return n;
}
int main()
{
int i,a[10],height=30,h,n=0;
printf("输入10个苹果的高度:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("\n输入淘淘的身高");
scanf("%d",&h);
height+=h;
n=GetApple(a,height,n);
printf("%d\n",n);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询