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. angular2.0学习笔记2.创建hello world项目

    1.打开终端命令行窗口 2.切换到指定目录 E:\cd myobject 3.创建新项目 ng new angular2-helloworld 4.创建成功后,在angular2-helloworld ...

  2. linux 使用笔记3

    解决linux下打开txt乱码问题 在Linux下要阅读windows生成的txt文件,需要通过iconv进行字符转化 iconv -f gb2312 -t utf8 ./读书笔记.txt > ...

  3. Oracle数据库mybatis 插入空值时报错(with JdbcType OTHER)

    参考文档: 1.https://blog.csdn.net/fishernemo/article/details/27649233 2.http://helgaxu.iteye.com/blog/21 ...

  4. 简单使用DESeq做差异分析

    简单使用DESeq做差异分析 Posted: 五月 06, 2017  Under: Transcriptomics  By Kai  no Comments DESeq这个R包主要针对count d ...

  5. 微信JSSDK接口previewImage

    <div class="pics"> <img src="http://pic1.ytqmx.com:82/2015/0409/01/15.jpg!96 ...

  6. Python 递归函数 详解

    Python 递归函数 详解   在函数内调用当前函数本身的函数就是递归函数   下面是一个递归函数的实例: 第一次接触递归函数的人,都会被它调用本身而搞得晕头转向,而且看上面的函数调用,得到的结果会 ...

  7. H3 android 系统编译

    http://bbs.ickey.cn/group-topic-id-57981.html [Orange Pi PC试用体验]11编译android源码笔记 编译android和编译linux有点类 ...

  8. 旅行家的预算(NOIP1999&水题测试2017082301)

    题目链接:旅行家的预算 这题还可以,不算太水. 这题贪心即可. 我们采取如下动作: 如果在装满油的情况下能到达的范围内,没有加油站,则无解. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价 ...

  9. LD_LIBRARY_PATH

    LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径. 在linux下可以用export命令来设置这个值,比如 在linux ...

  10. Find the location of libmysqlclient.so.X file in Linux environments

    I'm putting together a script that has a requirement of knowing libmysqlclient.so.[15|16|18] .so fil ...