题目链接 ---- 点我传送哦!!!
L1-001 ~ L1-015
Hello World
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Hello World!";
}
L1-002 打印沙漏 (20分)
此生最讨厌模拟题!!!
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
char a;
int n;
cin>>n>>a;
int i,j,k;
int row = 0;
for(i=0;i<n;i++)
{
if((2*i*(i+2)+1)>n)
{
row = i - 1;
break;
}
}
for(i=row;i>=1;i--)//上层
{
for(k=row-i;k>=1;k--)
cout<<" ";
for(j=2*i+1;j>=1;j--)
cout<<a;
cout<<endl;
}
for(i=0;i<row;i++)//中层
{
cout<<" ";
}
cout<<a<<endl;
for(i=1;i<=row;i++)//下层
{
for(k=row-i;k>=1;k--)
cout<<" ";
for(j=2*i+1;j>=1;j--)
cout<<a;
cout<<endl;
}
cout<<n-(2*row*(row+2)+1);
return 0;
}
L1-003 个位数统计 (15分)
#include<bits/stdc++.h>
using namespace std;
int a[10] = {0};
void solve(string s){
int len = s.length();
for(int i=0;i<len;i++){
a[s[i]-'0']++;
}
for(int i=0;i<=9;i++){
if(a[i]!=0)
cout<<i<<":"<<a[i]<<endl;
}
}
int main(){
string n;
cin>>n;
solve(n);
return 0;
}
L1-004 计算摄氏温度 (5分)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<"Celsius = "<<5 * (n - 32)/9<<endl;
return 0;
}
L1-005 考试座位号 (15分)
#include<bits/stdc++.h>
#define maxn 1004
using namespace std;
struct node{
long long int n1;
int n2;
int n3;
}a[maxn];
int b[maxn];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].n1>>a[i].n2>>a[i].n3;
}
//for(int i=1;i<=n;i++){
//cout<<a[i].n1<<" "<<a[i].n2<<" "<<a[i].n3<<endl;
//}
int q;
cin>>q;
for(int i=1;i<=q;i++){
cin>>b[i];
}
for(int i=1;i<=q;i++){
//cout<<b[i]<<endl;
for(int j=1;j<=n;j++){
if(b[i] == a[j].n2){
cout<<a[j].n1<<" "<<a[j].n3<<endl;
break;
}
}
}
return 0;
}
L1-006 连续因子 (20分)
思路:因为连续的,所以我们只需要记录起始位置跟长度就行了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;
cin>>n;
int sumtot = 0;
int start = 1;
for(int i=2;i<n/i;i++){
int num = n;
int j = i;
int tot = 0;
while(num % j == 0){
num/=j;
j++;
tot++;
}
if(tot > sumtot){
sumtot = tot;
start = i;
}
}
if(sumtot == 0){
cout<<1<<endl;
cout<<n<<endl;
}
else{
cout<<sumtot<<endl;
cout<<start;
for(int i=1;i<sumtot;i++){
cout<<"*"<<start+i;
}
}
return 0;
}
L1-007 念数字 (10分)
#include<bits/stdc++.h>
#define ll long long
#define mes(x,y) memset(x,y,sizeof(x))
using namespace std;
map<char,string>mmap;
int main(){
mmap['-']="fu";mmap['0']="ling";mmap['1']="yi";mmap['2']="er";mmap['3']="san";mmap['4']="si";mmap['5']="wu";mmap['6']="liu";mmap['7']="qi";mmap['8']="ba";mmap['9']="jiu";
string s;
cin>>s;
int i=0;
for(i=0;i<s.length()-1;i++){
cout<<mmap[s[i]]<<" ";
}
cout<<mmap[s[i]]<<endl;
return 0;
}
L1-008 求整数段和 (10分)
#include<stdio.h>
int main()
{
int a,b,i,cot=0,sum=0;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++)
{
printf("%5d",i);//题目要求占5个字符宽
cot++;
if(cot%5==0&&i!=b)
printf("\n");
}
printf("\n");//执行完循环后,换行输入总和
for(i=a;i<=b;i++)
sum+=i;
printf("Sum = %d",sum);
return 0;
}
L1-009 N个数求和 (20分) 思路:分母相乘,分子先相乘在相加,然后约分。
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int x;
int y;
}pre[105];
int main(){
int n;
int sum=1,num,SUM=0,p=0;
cin>>n;
char c;
for(int i=0;i<n;i++){
cin>>pre[i].x >>c>>pre[i].y ;
sum*=pre[i].y ;
}//得出公共的分母
for(int i=0;i<n;i++){
num=pre[i].x ;
for(int j=0;j<n;j++){
if(i!=j)
num*=pre[j].y ;
}//分子
SUM+=num;
}
if(SUM==0)
cout<<"0"<<endl;
else if(SUM%sum==0)
cout<<SUM/sum<<endl;
else{
if(SUM/sum>=1){
p=SUM/sum;
SUM%=sum;
int temp=__gcd(SUM,sum);
cout<<p<<" "<<SUM/temp<<"/"<<sum/temp<<endl;
}
else{
int temp=__gcd(SUM,sum);
cout<<SUM/temp<<"/"<<sum/temp<<endl;
}
}
return 0;
}
L1-010 比较大小 (10分)
#include<bits/stdc++.h>
using namespace std;
int a[5];
int main(){
for(int i=0;i<3;i++){
cin>>a[i];
}
sort(a,a+3);
for(int i=0;i<2;i++){
cout<<a[i]<<"->";
}
cout<<a[2]<<endl;
}
L1-011 A-B (20分) 思路:ASCLL码有256个。
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
getline(cin,a);
getline(cin,b);
char vis[256]={0};
int len2 = b.size();
for(int i=0;i<len2;i++){
vis[b[i]]++;
}
string ss;
int len1 = a.size();
for(int i=0;i<len1;i++){
if(vis[a[i]] == 0){
ss += a[i];
}
}
cout<<ss<<endl;
return 0;
}
L1-012 计算指数 (5分)
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin>>N;
cout<<"2^"<<N<<" = ";
cout<< (1<<N) <<endl;
return 0;
}
L1-013 计算阶乘和 (10分)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int tot = 0;
int sum;
for(int i=1;i<=n;i++){
sum = 1;
for(int j=1;j<=i;j++){
sum *= j;
}
tot += sum;
}
cout<<tot<<endl;
return 0;
}
L1-014 简单题 (5分)
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"This is a simple problem.";
return 0;
}
L1-015 跟奥巴马一起画方块 (15分) 思路:注意判断奇偶,奇数就进位。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char c;
cin>>n>>c;
int hang;
if(n % 2 ==0 )
hang = n / 2;
else hang = n/2 + 1;
for(int i=1;i<=hang;i++){
for(int j=1;j<=n;j++){
cout<<c;
}
cout<<endl;
}
return 0;
}