[NOIP1998] 普及组
三连击
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
输入输出格式
输入格式:
木有输入
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
192 384 576
* * *
...
* * *
(输出被和谐了)
三重循环暴力枚举数字即可。
其实也可以枚举第一个数字,按照比例算其他两个数字。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool bo;
int main(){
int a[]={};
int i,j,k=;
bool bo;bo=true;
for(i=;i<=;i++){
a[]=i/;
a[]=i/%;
a[]=i%;
a[]=i*/;
a[]=i*/%;
a[]=i*%;
a[]=i*/;
a[]=i*/%;
a[]=i*%;
bo=true;
for(j=;j<=;j++)
for(k=j+;k<=;k++)
if(a[j]==a[k]||a[j]==||a[k]==) bo=false;
if(bo==true){
cout<<a[]<<a[]<<a[]<<" "<<a[]<<a[]<<a[]<<" "<<a[]<<a[]<<a[]<<endl;
}
//for(j=1;j<=9;j++) cout<<a[j]; //test }
return ;
}
三连击
阶乘之和
题目描述
用高精度计算出S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5*4*3*2*1。
输入输出格式
输入格式:
一个正整数N。
输出格式:
一个正整数S,表示计算结果。
输入输出样例
3
9
裸高精乘
#include<iostream>
#include<cstdio>
using namespace std;
int a[]={};
int b[]={};
int N=;
int la=,lb=;
void plu(int a[],int b[]){
for(int i=;i<=la||i<=lb;i++){
a[i]+=b[i];
if(a[i]>&&a[i+]==) la++;
a[i+]+=a[i]/;
a[i]%=;
}
}
void muti(int n){
if(n>N) return;
int i;
for(i=;i<=lb;i++)
b[i]*=n;
for(i=;i<=lb;i++){
if(b[i]>=){
if(b[i+]==) lb++;
b[i+]+=b[i]/;
b[i]%=;
}
}
plu(a,b);
muti(n+);
}
int main(){
int n=;
cin>>N;
b[]=;
muti();
while(a[la]==&&la>)la--;
for(int j=la;j>=;j--) printf("%d",a[j]);
return ;
}
阶乘之和
幂次方
题目太长不放
递归处理
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std; int a[];
int dfs(int n)
{
//幂为0、1、2则直接输出,>=3则递归求解。
int i=;
if(n!=)
{
while(n>=a[i]) i++; i--; //找到最大的幂
n-=a[i];//下面12~20行是处理减去的这部分。
printf("");
if(i!=)printf("(");//注意1次幂是2而不是2(1)
if( i== || i == ) printf("%d)",i);//幂为0、1、2时可输出幂(幂1时无输出)
//如果幂>=3,对幂递归,不输出幂。
if(i>=) {dfs(i);printf(")");}//递归求解,再添加右括号。
if(n!=) {printf("+");dfs(n);}//子问题与子问题之间用+连接;处理剩余的n(子问题)。
}
return ;
}
int main(void)
{
int i,n;
a[]=;
for(i=;i<;i++)
a[i]=a[i-]*; //a:1 2 4 8 16 32……
scanf("%d",&n);
dfs(n);
return ;
}
幂次方
[NOIP1998] 普及组的更多相关文章
- C++算法代码——三连击[NOIP1998 普及组]
题目来自:https://www.luogu.com.cn/problem/P1008 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目 ...
- NOIP2012 普及组 T3 摆花——S.B.S.
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
- NOIP2016普及组复赛解题报告
提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...
- 05:统计单词数【NOIP2011复赛普及组第二题】
05:统计单词数 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...
- [题解]noip2016普及组题解和心得
[前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...
- NOIP2016普及组
普及组.代码有空发. 第一题就是买铅笔.暴力模拟绝对可取. 第二题就是回文日期.从t1的年份到t2的年份枚举每一年.头尾要特判. 第三题就是海港.骗了40分. 第四题就是魔法阵.不太好优化. 完.
- [NOIP2013] 普及组
计数问题 纯模拟 #include<cstdio> #include<iostream> using namespace std; int main(){ int n,x; c ...
- NOIP2008 普及组T2 排座椅 解题报告-S.B.S
题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...
- NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一 ...
随机推荐
- python工具之myql数据库操作
import pymysql import config ''' 1.0 简单封装 1.1 添加了insert_id属性,返回insert时返回的主键 1.2 添加了column属性,返回查询的col ...
- 【学习笔记】HTML position(static、fixed、relative、absolute)
[本文转载] position的四个属性值:static.fixed.relative.absolute 下面分别讲述这四个属性:<div id="parent"> ...
- SQL Server 2008还原数据库的具体方法
俗话说“好记性不如烂笔头”,在相隔较长的时间段内,每次还原客户的数据库都记不清完全的步骤,为此mark一下. SQL Server 2008一般默认备份的文件格式是bak,即后缀名为.bak.bak文 ...
- HV000184: ParameterMessageInterpolator has been chosen, EL interpolation will not be supported问题解决
今天创建springboot项目的时候添加完依赖启动出现了这个错误 -- :: --- [ main] o.h.v.m.ParameterMessageInterpolator : HV000184: ...
- CPLD
复杂可编程逻辑器件(Complex Programmable Logic Device, CPLD),CPLD适合用来实现各种运算和组合逻辑(combinational logic).一颗CPLD内等 ...
- Cognos邮件发送
1.打开报表,点击下图的标记 2.设置发送格式收件人 3.设置报表格式 4.设置发送内容
- jq打印
1.引入jQuery.print.min.js 2.将需要打印的东西用div包起来 3. $(".printDiv").print();
- DROP SEQUENCE - 删除一个序列
SYNOPSIS DROP SEQUENCE name [, ...] [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP SEQUENCE 从数据库中删除序列号生成 ...
- ES6对象和数组解构
解构可以避免在对象赋值时再生成多余的中间变量: function foo() { return [1,2,3]; } let arr = foo(); // [1,2,3] let [a, b, c] ...
- 简单批处理命令直接启动你的AVD
大家都知道,要想启动AVD,一般方法是先打开Android SDK and AVDmanager,再选择你要启动的AVD选择start(废话) 那么,有没有一种简单的方法在任何位置一键启动你指定的av ...