zoukankan      html  css  js  c++  java
  • 平衡数问题

    牛牛在研究他自己独创的平衡数,平衡数的定义是:将一个数分成左右两部分,分别成为两个新的数。
    左右部分必须满足以下两点:
    1,左边和右边至少存在一位。
    2,左边的数每一位相乘如果等于右边的数每一位相乘,则这个数称为平衡数。
    例如:1221这个数,分成12和21的话,1*2=2*1,则称1221为平衡数,再例如:1236这个数,可以分成123和1*2*3=6,所以1236也是平衡数。而1234无论怎样分也不满足平衡数。

    注意:测试用例:420306这种含有2个及以上0的数。

    #include <iostream>
    #include <algorithm>
    #include "string.h"
    #include "stdio.h"
    #include <vector>
    #include <deque>
    #include <stack>
    using namespace std;
    
    class Sort {
    public:
      bool findcount(vector<int> arr, int n) {
            // write code here
            if(n<2||n>50)
                return false;
    
            int begin = 0;
            int end = n-1;
            long long res1 = 1;
            long long res2 = 1;
            int count=0;
            for(int i=0;i<n;i++)
            {
               if(arr[i]==0)
                   count++;
            }
            if(count>=2)//处理含有多个0的情况
    return true;
    while(begin<=end) { if(res1<=res2) { res1*=arr[begin]; begin++; } else { res2*=arr[end]; end--; } } if(res1==res2) return true; else return false; } }; int main() { int num; int count = 0; cin>>num; if(num<=10) { cout<<"NO"<<endl; return 0; } vector<int> res; while(num) {   res.push_back(num%10); num/=10; } Sort solution; bool result = solution.findcount(res,res.size()); if(result == 1) cout<<"YES"<<endl; if(result == 0) cout<<"NO"<<endl; return 0; }
  • 相关阅读:
    postman+newman+jenkins 接口自动化问题
    rabbitMQ Management http://localhost:15672/ 打不开
    转-轻松几步搭建SVN服务器
    Eclipse调优
    转- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
    calculate Leave Days
    验证只能输入中文
    js 只能限制只能输入数字和转大写方法
    拿来自勉
    JAVA的容器---List,Map,Set的区别
  • 原文地址:https://www.cnblogs.com/omelet/p/6617086.html
Copyright © 2011-2022 走看看