pat 1079(patients)
1.Pat-1079
2.源代码
#include
#include
#include
#include
using namespace std;
#define maxSize 100010
typedef struct {
int weight;//仓库中的数据
vector child;//使用vector存储孩子节点---->节省空间
}BiTree;
BiTree bt[maxSize];//申请一个这么大的BiTree类型数组
double sum = 0.0;//存储总得金钱数
double p,r;//number是结点个数,p是价格,r是增长率
//深度遍历
void DFS(int index,int depth){//index是结点下标,depth是结点的深度
if(bt[index].weight!=0){//判断是否是retailer
int i;//循环计算变量
double temp = p;//临时变量
// for(i = 0;i< depth;i++){
// temp = temp*(1+r/100);
// }
temp = pow((1+r/100),depth) * temp;
temp = temp*bt[index].weight;
sum += temp;//计算总数
}
int k;
for(k = 0;k < bt[index].child.size();k++ ){
DFS(bt[index].child[k],depth+1);
}
}
int main(){
int n;
scanf("%d %lf %lf",&n,&p,&r);//输入信息
int i,j;
int number, cd;//number表示的是数字,cd表示的是孩子结点下标
for(i = 0;i< n;i++){
scanf("%d",&number);
if(number != 0){
bt[i].weight = 0;//将非retailer的结点重量初始化为0
for(j = 0; j< number;j++){
scanf("%d",&cd);
bt[i].child.push_back(cd);//加入到数组下标中
}
}
else{//是retailer,则输入囤货重量
scanf("%d",&bt[i].weight);
}
}
DFS(0,0);//深度遍历
printf("%.1lf",sum);
}
/**
10 1.80 1.00
3 2 3 5
1 9
1 4
1 7
0 7
2 6 1
1 8
0 9
0 4
0 3
*/
/**验证输出
for(i = 0;i < n;i++){
printf("i = %d,",i);
if(bt[i].child.size() > 0){
for(j = 0;j
#include
int main(){
int result;
result = pow(2,3);
printf("2^3 = %d\n",result);
double re = pow(0.1,3);
printf("0.1^3 = %lf\n",re);
}
同样在C中也可以实现
#include
#include
#include
using namespace std;
int main(){
int result;
result = pow(2,3);
printf("2^3 = %d\n",result);
double re = pow(0.1,3);
printf("0.1^3 = %lf\n",re);
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~