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. Attribute Syntax

    Attribute Syntax This section describes the syntax with which __attribute__ may be used, and the con ...

  2. Numpy 基础运算

    numpy的几种运算 1.一维矩阵运算 >>> import numpy as np >>> a=np.array([10,20,30,40]) # array([ ...

  3. iOS.C

    iOS开发中C语言的应用: 1. NS_ENUM & NS_OPTIONS http://nshipster.com/ns_enum-ns_options/

  4. mysql 清空所有表数据重置自增ID

    1.登录mysql客户端 mysql -u root -p 输入密码进入 2.生成 sql 语句文件 SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') i ...

  5. mysql.lib 的使用

    一 说明      mysql.lib 提供了很多方便的操作,同时结合 vector 使用十分方便. 二 使用    1 声明需要用到的变量 static MYSQL s_mysql[DATABASE ...

  6. JS基础-数据类型-运算符和表达式-变量和常量

    1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...

  7. canvas 实现贪吃蛇游戏

    var canvas = document.getElementById('canvas'); var cxt = canvas.getContext('2d'); // 定时器 var timer; ...

  8. Unity2017新功能Sprite Atlas详解

    Sprite Atlas(精灵图集)Sprite Atlas 针对现有的图集打包系统Sprite Packer在性能和易用性上的不足,进行了全面改善.除此之外,相比Sprite Packer,Spri ...

  9. 2019.01.26 codeforces 528D. Fuzzy Search(fft)

    传送门 fftfftfft好题. 题意简述:给两个字符串s,ts,ts,t,问ttt在sss中出现了几次,字符串只由A,T,C,GA,T,C,GA,T,C,G构成. 两个字符匹配的定义: 当si−k, ...

  10. linux 下安装安装mysql 5.6. 5.7

    linux版本:CentOS7 64位 5.7.20 安装请看 他人博客 我已经安装成功了 https://www.cnblogs.com/cz-xjw/p/8006904.html 5.6安装 前提 ...