1994: 海底沉船
题目描述
X星人在一艘海底沉船上发现了很多很多很多金币,可爱的X星人决定用这些金币来玩一个填格子的游戏。
其规则如下:第1个格子放2枚金币,第2个格子放6枚金币,第3个格子放12枚金币,第4个格子放20枚金币,第5个格子放30枚金币,以此类推。
请问放到第n个格子时一共放了多少枚金币?
输入
多组输入。每组一个正整数n,表示最后一个格子的编号。(n<=100)
输出
对于每一组输入,输出从第1个格子到第n个格子的总金币数。
样例输入 Copy
1 3
样例输出 Copy
2 20#include<iostream> #include<algorithm> #include<string> using namespace std; int fun(int n) { return n * (n + 1); } int main() { int n; while (cin >> n) { int sum = 0; for (int i = 1; i <= n; i++) { sum += fun(i); } cout <<sum << endl; } }
1820: 粗心的小表弟
题目描述
今天英语课,小表弟的英语老师教了他三个与动物有关的单词,分别是cat、pig和horse,但是粗心的小表弟在写这三个单词的时候经常会写错。
假如小表弟每个单词最多写错一个字母(当然有时候也是会全部写对的,且字母个数是完全正确的)。
你能否编写一个程序,对小表弟写的单词进行自动纠错。
输入
单组输入。
输入一个可能存在单个字母错误的单词。输出
输出与输入对应的正确单词。
样例输入 Copy
hoose样例输出 Copy
horse
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string ss;
cin >> ss;
if (ss[0] == 'c' && ss[1] == 'a' || ss[0] == 'c' && ss[2] == 't' || ss[1] == 'a' && ss[2] == 't')
cout << "cat";
else if (ss[0] == 'p' && ss[1] == 'i' || ss[0] == 'p' && ss[2] == 'g' || ss[1] == 'i' && ss[2] == 'g')
cout << "pig";
else
{
cout << "horse";
}
}
2067: 十六进制
题目描述
小米同学最近在学习进制转换。众所周知,在表示十六进制数时,除了0-9这九个阿拉伯数字外,还引入了“A”、“B”、“C”、“D”、“E”和“F”这六个英文字母(不区分大小写)。
现在给你一个十进制正整数,请问在将其转换为十六进制之后,对应的十六进制表示中有多少位是字母?
输入
单组输入。
输入一个十进制正整数N(N<=10^6)。输出
输出将N转换成十六进制数字后所包含的字母位的数量,如果没有字母位则输出0。
样例输入 Copy
20样例输出 Copy
0
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int fun(int n)
{
int sum = 0;
int m;
while (n)
{
m = n % 16;
if (m >= 10)
{
sum++;
}
n = n / 16;
}
return sum;
}
int main()
{
int n;
cin >> n;
cout << fun(n);
}
2091: 平行四边形
题目描述
Kimi想用“*”号构成一个平行四边形并在屏幕上输出。
当输入一个大于等于2的正整数N时,屏幕上将显示一个由N*N个“*”组成的平行四边形。
例如:输入3,输出如下平行四边形。
***
***
***
输入
输入一个正整数N,1<N<=100。
输出
输出一个N行,每行N个“*”组成的平行四边形。
样例输入 Copy
3样例输出 Copy
*** *** ***
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = n - 1; i >= 0; i--)
{
for (int j = i; j>= 1; j--)
cout << " ";
for (int i = 1; i <= n; i++)
cout <<'*';
cout << "\n";
}
}
1798: 临时换人
题目描述
因为某些原因,Jack和Rose没有办法参加毕业演出,他们两个的工作任务都将由劳模Tom来代替。
现在需要更新演职人员名单,将所有的Jack和Rose替换成Tom。
请你编写一段程序实现人员替换功能。
输入
单组输入。
输入一个字符串(可能有空格,字符串长度<=1e5),包含若干Jack和Rose。输出
输出替换之后的字符串。
样例输入 Copy
Cameraman: Jack, Lighting engineer: Rose.样例输出 Copy
Cameraman: Tom, Lighting engineer: Tom.
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
String a=sc.nextLine();
String ss=a.replace("Jack","Tom");
String ss2=ss.replace("Rose","Tom");
System.out.println(ss2);
}
}
1760: 第n个数
题目描述
自从学了素数以后,明明喜欢上了数字2、3和5。当然,如果一个数字里面只出现2、3和5这三个数字,他也一样喜欢,例如222、2355、223355。
现在他希望你能够帮他编写一个程序,快速计算出由2、3、5这三个数字组成的由小到大的第n个数,当然也包括2、3和5。
输入
每组输入数据占1行,每行输入一个正整数n。(n<=1000)
输出
每组输出数据占1行,即满足要求的第n个数。
样例输入 Copy
3样例输出 Copy
5
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
string s[1005];
int cnt = 0;
void init(){
queue<string>q;
q.push("2");
q.push("3");
q.push("5");
queue<string>temp1;
queue<string>temp2;
while(1){
for(int i = 1;i<=3;++i){
char c;
if(i==1)c='2';
if(i==2)c='3';
if(i==3)c='5';
while(!q.empty()){
if(i==1){
s[++cnt] = q.front();
//cout<<s[cnt]<<endl;
if(cnt>=1000)return;
}
temp1.push(q.front());
temp2.push(c+q.front());
q.pop();
}
while(!temp1.empty()){
q.push(temp1.front());
temp1.pop();
}
}
while(!q.empty())q.pop();
while(!temp2.empty()){
q.push(temp2.front());
temp2.pop();
}
}
}
int main(){
init();
int n;
while(~scanf("%d",&n)){
cout<<s[n]<<endl;
}
return 0;
}