首页 > 小小少年前来寻找帮助
头像
呼呼傻
编辑于 2020-12-05 21:27
+ 关注

小小少年前来寻找帮助


小小..小新手的简单题目;
链接:https://ac.nowcoder.com/acm/problem/21803
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

牛牛刚学完排序,他准备拿n个数一展身手,但是他发现现实中的排序与课堂里的排序不一样

每次他只能对连续的n-1个数进行从小到大的排序
请问牛牛最少需要几次排序能将所有的数排成有序的

输入描述:

第一行先输入一个整数n (3 ≤ ≤ 50)
第二行输入n个整数范围在1到1000以内

输出描述:

输出一个整数
示例1

输入

复制 4 2 6 8 5
4
2 6 8 5

输出

复制 1
1
示例2

输入

复制 6 4 3 1 6 2 5
6
4 3 1 6 2 5

输出

复制 2
2
示例3

输入

复制 5 50 20 30 40 10
5
50 20 30 40 10

输出

复制 3
3

备注:

子任务1:n <= 10
子任务2:n <= 20
子任务3:无限制
请问如何控制每一次进位都输出低位内容,直到找到不进位的位数。

代码如下(我只判断了sum和分别的a,b。简单说,就是不会这题...wuwuwu):
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
long long a,b,sum=0,ans;
long long k=0,j=0,t=1;
scanf("%ld",&a);
getchar();
scanf("%ld",&b);
sum=a+b;
ans=sum;
a>b ? :a=b;
while(sum>=1)
{
sum/=10;
k++;
}
while(a>=1)
{
a/=10;
j++;
}
if(k>j)
{
while(j--)
{
t*=10;
}
cout<<ans%t;
}
else
cout<<ans;

return 0;
}
虚心求教,感谢解答!!

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐