2016第七届蓝桥杯C/C++ B组省赛第二题:生日蜡烛
2016-03-29 12:02
351 查看
/*
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这道题可以用暴力和公式两种方法:公式是高中时常用的等差数列公式,不过上到大二都忘干净了,惭愧呀*/
公式法:(第一项+最后一项)*项数=这个等差数列的和
第二种方法:纯暴力,枚举开始的年份和结束的年份进行判断
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这道题可以用暴力和公式两种方法:公式是高中时常用的等差数列公式,不过上到大二都忘干净了,惭愧呀*/
公式法:(第一项+最后一项)*项数=这个等差数列的和
<span style="font-size:18px;"> </span>
<span style="font-size:18px;">#include <stdio.h> int main() { for(int i=1;i<=100;i++) for(int j=i;j<=100;j++) { if(((i+j)*(j-i+1))/2==236) { printf("%d",i); break; } } return 0; }</span>
第二种方法:纯暴力,枚举开始的年份和结束的年份进行判断
<span style="font-size:18px;"> </span>
<span style="font-size:18px;">#include <stdio.h> int main() { int i,j,k,sum; for(i=1;i<=100;i++) for(j=i;j<=100;j++) { sum=0; for(k=i;k<=j;k++) sum=sum+k; if(sum==236) { printf("%d\n",i); break; } } return 0; }</span>
相关文章推荐
- C++简单的图存储
- 一组整数的全排列【C程序】
- C++异常抛出与捕获及处理
- 2016第七届蓝桥杯C/C++ B组省赛第一题:煤球数目
- C++模板快速排序和Stooge排序
- c语言把一个数组里面的部分值直接复制到另外一个数组
- Leetcode 14. Longest Common Prefix
- C++杂谈(一)const限定符与const指针
- C++继承详解
- C语言位运算符:与、或、异或、取反、左移和右移
- Eclipse c/c++开发环境搭建
- VC++的Unicode编程
- 关于c语言#include的用法
- windows下C语言实现soket连接-客户端
- 函数返回数组问题
- C++解决大整数相加问题
- C++ bitset类的使用与简介
- c++ 基本类型大小
- C++位操作符
- 【C/C++】malloc()