南洋理工OJ——57题 6174问题
来源:互联网 发布:拉塞尔夏季联赛数据 编辑:程序博客网 时间:2024/04/29 19:55
思路:
1. 排序:将输入的字符串str1(string)从大到小排序,然后用另一个str2存str1的倒序
2. 类型转换:
- string -> int :
int n;string str;cin>>str;n = atoi(str.c_str());
- int -> string :
int n;string str;cin>>n;stringstream ss;ss>>n;ss<<str;
3.计算:sub = str1 - str2
4.计数:记录变成6174的变形次数
代码如下:
#include <iostream>#include <string>#include <sstream>#include <stdlib.h>using namespace std;class TheNum{private: string num; string Fnum; int numUp,numDown; int sub; int cont;public: TheNum() //构造函数里对数据成员初始化 { numUp = 0; numDown = 0; cont = 1; } void set(string n); //设置数据成员的数值 void order(); //排序 void flip(); //倒序 void toInt(); //类型转换 void subtract(); //计算 int counter(); //计数 void toString(); //类型转换};void TheNum::set(string n){ num = n;}void TheNum::order(){ char t; for (int i = 0; i < 4; i++) { for (int j = i; j < 4; j++) { if (num[i] < num[j]) { t = num[i]; num[i] = num[j]; num[j] = t; } } }}void TheNum::flip(){ int j = 0; for (int i = 3; i >= 0; i--) { Fnum[j] = num[i]; j++; }}void TheNum::toInt(){ numUp = atoi(num.c_str()); numDown = atoi(Fnum.c_str());}void TheNum::subtract(){ sub = numUp - numDown;}int TheNum::counter(){ do { toString(); order(); flip(); toInt(); subtract(); cont++; }while (sub != 6174); cont += 1; return cont;}void TheNum::toString(){ stringstream ss; ss<<sub; ss>>num;}int main(){ int n; cin>>n; while (n--) { string input; cin>>input; TheNum pro; pro.set(input); pro.order(); pro.flip(); pro.toInt(); pro.subtract(); cout<<pro.counter()<<endl; }}
南洋理工OJ链接
0 0
- 南洋理工OJ——57题 6174问题
- 南洋理工OJ——24 素数距离问题
- 南洋理工OJ ——23题 取石子
- 南洋理工oj--16
- 最小区间覆盖(南洋理工—会场安排问题)
- 南洋理工 括号配对问题
- 南洋理工ACM——阶乘的0
- 最小区间覆盖(南洋理工—喷水装置二)
- 太厉害 方法永远比实现厉害!南洋理工OJ 241题 字母统计
- 南洋理工oj 题目92 图像有用区域
- 南洋理工第275题 十进制转二进制的
- DP 回文字符串 南洋理工
- 南洋理工 714 Card Trick
- 韩信点兵(南洋理工ACM)
- 哈理工OJ—1013 Eqs(数学怪题)
- 6174问题理工题
- 南阳理工OJ:倒水问题
- 南阳理工 57 6174问题
- Java学习笔记-Collections和Arrays工具类
- Mongodb数据导出到json或csv
- 素数环
- TOJ2273 Making Change ----DFS
- 浅谈递归
- 南洋理工OJ——57题 6174问题
- android系统 关闭应用
- 29个月过去了,CSDN排名前200了:排名不断靠前的过程中,自己的技术水平和竞争力一定会不断向上
- Java线程面试题 Top 50
- poj1274
- gentoo时时更新官方安装教程地址中英文
- 解决虚拟键盘关闭后无法退出程序的问题
- LeetCode:Trapping Rain Water
- 重构—多种方法实现学生下机