nyoj 57-6174问题(相邻元素判断问题)
2024-09-01 15:35:35
57-6174问题
内存限制:64MB
时间限制:1000ms
Special Judge: No
accepted:16
submit:31
题目描述:
假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数
比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4
输入描述:
第一行输入n,代表有n组测试数据。
接下来n行每行都写一个各位数字互不相同的四位数
输出描述:
经过多少次上面描述的操作才能出现循环
样例输入:
复制
1
1234
样例输出:
4 分析:
1、需要注意的是,要将上一步的结果存起来和下一步进行比较 核心代码:
while(my_now != my_next)
{
++ cnt;
my_now = my_next;
int temp = my_now, i = ;
while(temp)
{
A[i ++] = temp % ;
temp /= ;
}
sort(A, A+);
int a = A[] + A[] * + A[] * + A[] * ; // a -- max
int b = A[] * + A[] * + A[] * + A[]; // b -- min
my_next = a - b;
}
C/C++代码实现(AC):
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue>
#include <set> using namespace std; int main()
{ int t;
scanf("%d", &t);
while(t --)
{
int n, cnt = , my_now, my_next, A[];
scanf("%d", &n);
my_now = -, my_next = n;
while(my_now != my_next)
{
cnt ++;
my_now = my_next;
int temp = my_now, i = ;
while(temp)
{
A[i ++] = temp % ;
temp /= ;
}
sort(A, A + );
int a = A[] + A[] * + A[] * + A[] * ; // a -- max
int b = A[] * + A[] * + A[] * + A[]; // b -- min
my_next = a - b;
}
printf("%d\n",cnt);
}
return ;
}
最新文章
- [Storm] No data flows into bolt
- 在Windows Server 2012 R2上安装SharePoint 2013 with SP1失败,提示没有.net4.5的解决办法
- C++中using的作用
- Linux性能分析工具的安装和使用
- nginx + keepalived 双机热备
- Kali安装
- poj 3259 Wormholes spfa算法
- 【转】Android横竖屏切换问题
- !! UML十四图打油诗记忆法
- 多线程 NSThread GCD
- sizeof和strlen的区别和联系总结
- TXDragon的大火题合集
- Django基础(路由、视图、模板)
- iOS开发之获取当前展示的VC
- Logstash替换字符串,解析json数据,修改数据类型,获取日志时间
- JavaScript 的if语句和==的判断
- HTML汇总以及CSS的一些开端
- vue-cli搭建vue项目更新
- const char * 转换为char*
- Sed basic and practice
热门文章
- vc++木马源码免杀一些常用方法
- Ubuntu使用中遇到的的一些问题
- Java基础(三十)泛型程序(Generic Programming)
- vue项目如何在node启动
- Web for pentester_writeup之File Include篇
- 《Effective Java》 读书笔记(五)使用依赖注入取代原本的资源依赖
- 关于Ubuntu10.04磁盘空间不足的问题
- Kettle(6.0) 参数方式连接数据库
- 五角场之殇。曾与张江、漕河泾、紫竹齐名。如今,上海四大IT科技园是否还在?
- 九:写了一下红帽免费的centos6的安装步骤