一,煤球数目二,生日蜡烛三,凑算式四,END
Hello,大家好我是
上进小菜猪,一个有趣的全栈博主,欢迎关注,多多关照
欢迎大家找我合作学习(文末有VX与公众号 想进学习交流群or学习资料or一起刷题 欢迎++)
苟怀四方志,所在可游盘,一起加油进步!
标签:2016 省赛 填空
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
有一堆煤球,堆成三角棱锥形。具体: 第一层放 11 个, 第二层 33 个(排列成三角形), 第三层 66 个(排列成三角形), 第四层 1010 个(排列成三角形), … 如果一共有 100100 层,共有多少个煤球?
运行限制
最大运行时间:1s
最大运行内存: 128M
答案:
171700
分析:
c++代码解法:
#includeusing namespace std; int main() { int a=1,sum=1; for(int i=2;i<=100;i++) { a=a+i; sum+=a; } cout< python代码解法:
a=1 sum=1 for i in range(2,101): a=a+i sum=sum+a print(sum)总结:
二,生日蜡烛
送分题,颇为简单。标签:2016 省赛 填空
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。某君从某年开始每年都举办一次生日 partyparty,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了 236236 根蜡烛。
请问,他从多少岁开始过生日 partyparty 的?
请输出他开始过生日 partyparty 的年龄数。
运行限制
最大运行时间:1s
最大运行内存: 128M答案:26
c++代码解法:
#includeusing namespace std; int main() { int sum=0; for(int i=1;i<=100;i++) { sum=0; for(int j=i;j<=100;j++) { sum+=j; if(sum==236) { cout< python代码解法:
sum=0 for i in range(1,101): sum=0 for j in range(i,101): sum=sum+j if(sum==236): print(i)总结:简单枚举题,直接暴力
三,凑算式标签:2016 省赛 填空
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。B DEF A + --- + ------- = 10 C GHI这个算式中 A ~ I 代表 0 ~ 9 的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/7146+8/3+952/714 就是一种解法, 5+3/1+972/4865+3/1+972/486是另一种解法。这个算式一共有多少种解法?
运行限制 最大运行时间:1s 最大运行内存: 128M
答案:
答案:29
c++暴力解法:
#includeusing namespace std; int main() { int sum=0; int a,b,c,d,e,f,g,h,i; for(a=1;a<10;a++) { for(b=1;b<10;b++) { for(c=1.0;c<10;c++) { for(d=1;d<10;d++) { for(e=1;e<10;e++) { for(f=1;f<10;f++) { for(g=1;g<10;g++) { for(h=1;h<10;h++) { for(i=1;i<10;i++) { int m=g*100+h*10+i; int n=d*100+e*10+f; if((a+(b/c)+n/m==10)&&(((b*n)%(c*m))==0)&&(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)&&((g*100+h*10+i)!=0)) { sum++; //cout< } } } } } } } } } } cout< c++采用全排列(next_permutation)解法:
#includeusing namespace std; int main() { int a[11]={1,2,3,4,5,6,7,8,9},sum=0; while(next_permutation(a,a+9)) { if((a[0]+1.0*a[1]/a[2]+(1.0*100*a[3]+10*a[4]+a[5])/(100*a[6]+10*a[7]+a[8]))==10) { sum++; } } cout< 笔记:递归手动全排列模板。
四,END
关注作者,持续阅读作者的文章,一起学习更多知识!
点击关注,联系作者,进入群聊,一起刷题如果有更优解法及其思路,欢迎讨论。



