码迷,mamicode.com
首页 > 其他好文 > 详细

A. Vanya and Cubes

时间:2015-07-17 18:28:11      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:http://codeforces.com/problemset/problem/492/A

题目大意:

           用n个立方体来建一座金字塔,第一水平线使用1个立方体,第二水平线使用(1+2)个立方体,第三水平线使用(1+2+3)个立方体,由此类推,第i个立方体使用(1+2+3+...+i)个立方体,总使用的立方体数目不超过n,问n个立方体建立的金字塔的最高层数为多少?(金字塔如下所示)

               技术分享

题目分析:

     可以从建立i层高的金字塔所需立方体数考虑,利用循环语句如for语句,进行计算。一层一层的建立后比较,超过提供的立方数则无法继续叠层,跳出循环,如果没有,则继续下一轮的循环。

源代码:

 

 

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,m=0,k=0,count=0;//n为测试数据
 6     while(cin>>n){
 7     for(int i=1;i<=n;i++)
 8     {   
 9         m+=i;//计算金字塔第i层需要的立方数m
10         count+=m;//计算建立i层金字塔需要的立方体总数
11         k++;//金字塔层数
12         if(count==n)
13           break;//建立i层金字塔立方体数恰好等于提供的立方数
14         else if(count>n)
15         {   k--;//建立i层金字塔立方体数超过提供的立方数
16             break;
17         }
18     }
19     cout<<k<<endl;
20     k=0;
21     m=0;
22     count=0;
23     }
24     return 0;
25 }

 

A. Vanya and Cubes

标签:

原文地址:http://www.cnblogs.com/huaszjh/p/4655123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!