(算法)各位乘积
来源:互联网 发布:mac系统隐藏文件命令 编辑:程序博客网 时间:2024/05/18 13:43
给出整数N(0 ≤ N ≤ 10^9),找出一个最小的整数Q,使得将Q的每一位相乘之后等于N
例如N=18,则Q可能取值为:29(2×9=18),36(3×6=18),63(6×3=18),92(9×2=18)
那么我们只要取最小值29即为结果
输入:整数N(0 ≤ N ≤ 10^9)
输出:如果存在这样的Q,则输出Q,如果不存在,输出-1
// 下面是自己写的
#include "iostream"
#include "cstdlib"
using namespace std;
long t(long N)
{
if (N<10 && N>=0)
{
return N ;
}
long r = 0;
for (long m = 1, i = 9; i > 1; i--)
{
while ((N % i) == 0)
{
r += m * i;
m *= 10;
N /= i;
}
}
return N > 9 ? -1 : r;
}
int main(int argc, char* argv[])
{
cout<<t(16)<<endl;
cout<<t(0)<<endl;
cout<<t(1)<<endl;
cout<<t(3)<<endl;
cout<<t(17)<<endl;
return 0;
}
结果为:
28
0
1
3
-1
- (算法)各位乘积
- 输出1-100之间符合如下条件的数:该数的各位数之乘积大于各位数之和(循环嵌套)
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法---最大连续乘积
- 算法提高 最大乘积
- 算法提高 连接乘积
- 算法训练 阿尔法乘积
- 算法训练 阿尔法乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法训练 阿尔法乘积
- 算法提高 最大乘积
- 算法提高 连接乘积
- 算法提高 最大乘积
- 算法训练 阿尔法乘积
- 算法提高 连接乘积
- 寻找创业伙伴中……
- VS 2005 中使用 VC6.0中编写的Project 若干问题
- 人性化验证码之我荐
- Head First C# 中文版 第12章 回顾与前瞻 page536
- 一个女程序员的征婚信息
- (算法)各位乘积
- socket实现从http服务器上下载
- C++注释//的小问题
- 毕业设计---完结
- python 中文乱码 问题深入分析
- 如何让wince支持自动IDLE、sleep模式?
- C#获取图像并删除图像
- delete和all-delete-orphan在进行删除操作时的不同
- 用date获得前一天的日期