1.    排身高

【问题描述】

鹏鹏的班上一共有 n 个学生。刚好每个同学的身高互不相同。鹏鹏想知道,所有同学中身高第二高的是谁。

输入格式:输入共两行,第一行有一个整数 n(2≤n≤100),表示有 n 个学生。第二行有 n 个用空格分开的整数 a1,……, an,依次表示每个同学的身高。ai 是不超过 200 的正整数。

输出格式:输出为两个整数,中间用空格隔开, 分别表示身高第二高的同学的编号和身高。

【输入样例】

4

140  145  152  144

【输出样例】

2   145

#include<iostream>
#include<algorithm>
using namespace std;
struct student {
int num,h;
};
student stu[];
bool comp(student a,student b) {
return a.h > b.h;
}
int main() {
freopen("high.txt","r",stdin);
freopen("highout.txt","w",stdout);
int n;
cin >> n;
for(int i=; i<=n; i++) {
stu[i].num = i;
cin >> stu[i].h;
}
sort(stu + ,stu + n + ,comp);
cout << stu[].num << " "<< stu[].h;
fclose(stdin);
fclose(stdout);
return ;
}

2.    大整数加法

【问题描述】

求两个不超过200位的非负整数的和。

输入:共2行,每行是一个不超过200位的非负整数,可能有多余的前导0。

输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

【样例输入】

22222222222222222222

33333333333333333333

【样例输出】

55555555555555555555

#include <iostream>
#include <cstring>
using namespace std;
int main() {
char a1[]= {},b1[]= {};
int a[]= {},b[]= {},c[]= {},lena,lenb,i;
int lenc = , x = ;
cin>>a1>>b1;
lena = strlen(a1);
lenb = strlen(b1);
for(i = ; i <= lena-; i++) {
a[lena-i-] = a1[i] - ;
}
for(i = ; i <= lenb -; i++) {
b[lenb-i-] = b1[i] - ;
}
while(lenc<lena||lenc<lenb) {
c[lenc]=a[lenc]+b[lenc]+x;
x = c[lenc]/;
c[lenc] = c[lenc]%;
lenc++;
}
c[lenc] = x;
for(i = lenc; i >=; i--) {
if(c[i] != ) {
break;
}
}
for( ; i >=; i--)
cout << c[i];
cout << endl; return ;
}

1.    大整数的减法

【问题描述】

求两个大的正整数相减的差。

输入:共2行,第1行是被减数a,第2行是减数b(a>b并且a,b的位数不同且不存在借位)。每个大整数不超过200位,不会有多余的前导0。

输出:一行,即所求的差。

【样例输入】

9999999999999999999999999999999999999

9999999999999

【样例输出】

9999999999999999999999990000000000000

#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a1[]= {},b1[]= {};
int a[]= {},b[]= {},c[]= {};
int lena,lenb,i,lenc = ;
cin>>a1>>b1;
lena= strlen(a1);
lenb = strlen(b1);
for(i = ; i <= lena-; i++) {
a[lena-i-] = a1[i] - ;
}
for(i = ; i <= lenb-; i++) {
b[lenb-i-] = b1[i] - ;
}
while(lenc<lena||lenc<lenb) {
if(a[lenc] < b[lenc]) {
a[lenc]+=;
a[lenc+]--;
}
c[lenc]=a[lenc]-b[lenc];
lenc++;
}
while((c[lenc-] == )&&(lenc > )) lenc--;
for(i = lenc-; i >=; i--) {
cout << c[i];
}
cout << endl;
return ;
}

2.    大整数的因子

【问题描述】

已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。

输入:一个非负整数c,c的位数<=30。

输出:若存在满足 c % k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。

【样例输入1】

30

【样例输出1】

2 3 5 6

【样例输入2】

397297374785857235

【样例输出2】

5

#include<iostream>
#include<cstring>
//#include<algorithm>
using namespace std;
int main() {
int i,j,ans = ;
char a[];
cin >> a;
for(j=; j<=; j++) {
int cur = ;
for(i=; i<strlen(a); i++) {
cur = cur* +a[i]-'';
cur %= j;
}
if(cur == ) {
cout << j << " ";
ans ++;
}
}
if(ans==) {
cout << "none" <<endl;
}
return ;
}

3.    回文数

【问题描述】

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:对整数56,将56加65(即把56从右向左读),得到121是一个回文数。

又如:对于整数87:
    STEP1:87+78 = 165 STEP2:165+561 = 726
    STEP3:726+627 = 1353 STEP4:1353+3531 = 4884
    在这里的一步是指进行了一次加法,上例中最少用了4步得到回文数4884。
    写一个程序,给定一个数N,求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”

输入:一行。输入一个整数N(N的位数少于100),用于进行加法求回文数。

输出:一行。如果能得到回文数,输出最少的步数M,如果30以内不可能得到,则输出“Impossible!”

【样例输入1】

87

【样例输出1】

4

【样例输入2】

23445456443988173748455

【样例输出2】

Impossible!

#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[]= {};
cin>>s;
int a[]= {},b[]= {};
int i,lens;
lens=strlen(s);
for(i=; i<lens; i++) {
b[i]=s[i]-;
a[lens--i]=s[i]-;
}
int c=;
for(i=; i<lens/; i++)
if(a[i]!=a[lens--i]) {
c=;
break;
}
if(c==) {
cout<<;
return ;
}
int w=;
while(w<=) {
int x=;
for(i=; i<lens; i++) {
a[i]+=b[i]+x;
x=a[i]/;
a[i]%=;
}
if(x==) {
lens++;
a[lens-]=;
}
int k=;
for(i=; i<lens/; i++)
if(a[i]!=a[lens--i]) {
k=;
break;
} if(k==) {
cout<<w;
return ;
}
for(i=; i<lens; i++) b[i]=a[lens--i];
w++;
}
cout<<"Impossible!"<<endl;
return ;
}

noip第13课作业的更多相关文章

  1. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  2. noip第19课作业

    1. 谁考了第K名 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. [输入格式] 第一行有两个整数,分别是学生的人数n(1<=n<=100 ...

  3. noip第5课作业

    1.     计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...

  4. noip第1课作业

    1.    求三个数的乘积和三次方和 [问题描述] 编程实现输入任意三个整数a, b, c,将这三个数的乘积以及三次方和输出: [样例输入] 1 2 3 [样例输出] 6 36 #include &l ...

  5. noip第11课作业

    1.    数字比较 定义一个函数check(n,d),让它返回一个布尔值,如果数字d在正整数n的某位中出现则返回true,否则返回false. 例如:check(325719,3)==true:ch ...

  6. noip第8课作业

    1.     计算书费 [问题描述]下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35  ...

  7. noip第13课资料

  8. noip第34课作业

    1.    信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...

  9. noip第33课作业

    1.    排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...

随机推荐

  1. android使用Pull解析来自服务器的xml文件时出现错误以及解决方案

    直接上代码,代码中有详细注释: 1 public class CheckUpdateManager { 2 private static final String TAG = "CheckU ...

  2. Centos7 上安装 FastDFS

    1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc yum install -y gcc ...

  3. Linux惊群效应详解

    Linux惊群效应详解(最详细的了吧)   linux惊群效应 详细的介绍什么是惊群,惊群在线程和进程中的具体表现,惊群的系统消耗和惊群的处理方法. 1.惊群效应是什么?        惊群效应也有人 ...

  4. 开源项目CircleImageView

    1.在自己MainActivity所在包下创建CircleImageView.class文件 package 自己包名; import android.content.Context; import ...

  5. windows下Git的使用教程(github)

    这表文章主要是用命令操作: 使用可视化软件操作:https://www.cnblogs.com/mswyf/p/9261859.html 一.下载安装Git Bash 下载安装:https://www ...

  6. Codeforces 791B. Bear and Friendship Condition 联通快 完全图

    B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes in ...

  7. UI设计教程:如何在设计中运用颜色

    灰度优先 我们习惯在设计阶段的早期就开始调整颜色和色调.但是,当你意识到自己花了3个小时来调整主色调的时候,你发现这种行为毫无帮助.虽然把玩颜色很有吸引力,但是你应该避免在设计初期进行这种行为. 相反 ...

  8. 二叉搜索树(BST)

    二叉搜索树需满足以下四个条件: 1.若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 2.若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值: 3.任意节点的左.右 ...

  9. 利用PHPExcel读取excel文件

    $filePath = "7788.xls"; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel ...

  10. 利用 FFmpeg 将 MP4 转成 FLV

    最近做一个小项目,要在线播放录制的 MP4 视频,想开源的 flash player 或 html 5 可以播放.可,虽然 MP4 是 H.264 编码,但就是播放不了.可能是封装方式(PS 方式)不 ...