当前位置: 首页 > news >正文

合肥建站优化北海 网站制作工

合肥建站优化,北海 网站制作工,制作app软件工具免费,网站整合营销推广记录算法究极无敌菜菜菜鸟的垃圾思维 题目: 现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。 菜鸟…

记录算法究极无敌菜菜菜鸟的垃圾思维

题目:
现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
在这里插入图片描述

菜鸟思维Recording【30分钟左右】

大学四年没碰过算法,小学生思维,勿喷勿喷

最开始我想使用查找表的方式先将所有结果都记录在一个table中,然后后续根据index去查找答案。

#include<stdio.h>
#include<limits.h>#define MAX 10000
int table[MAX];
/**
* 构造查找表
*/
void createTable(){int i, temp, multi;//初始化全局变量为最大值,否则默认为0for(i = 0; i < MAX; i++){table[i] = INT_MAX;}i = 0;while(i<MAX){multi = 1;temp = i;while(temp > 0){multi = multi*(temp%10);temp = temp/10;}if(table[multi] > i){table[multi] = i;}i++;}
}/*@param input:输入字符串序列@return int:返回正确的结果
*/
int func(char* input) {createTable();// Please fill this blank//将char*转换为intint num = 0, i = 0;while(input[i] != '\0'){num = num*10+input[i] -'0';i++;}return table[num];
}int main() {char str[100];printf("请输入一个字符串\n");scanf("%s", str);printf("%d", func(str));return 0;
}

分析

  • 题目并没有说明输入的字符的最大数量,在我的代码里人为定义了MAX,会造成内存溢出的问题(ERR)
  • createTable的成本太高太高太高。内层while次数取决于位数,可以近似等于log(i)。所以总的时间复杂度应该是O(nlog(n))在这里插入图片描述

参考题解

因为限制了最小正整数m>9,所以对于小于10的数,返回结果应该是(10+num);对于大于等于10的数,高位越小,那么得到的数字肯定越小,结果其实就是这个整数的因子的一个组合,要得到最小的组合的整数,那么低位就应该尽可能的取大值,这样才能保证高位得到的是最小的。如果没有余数就表示这个数是有结果的,有余数就表示这个数不存在。

#include <stdio.h>
int func(char* input){
//将str转换为intint i = 0, num = 0, res = 0, pos = 1;while(input[i]!='\0'){num = num*10 + input[i]-'0';i++;}if(num < 10) return (10+num);for(i = 9; i > 1; i--){while(num% i == 0){//pos表示位数res += i*pos;pos *= 10;num/=i;}}if(num> 1) return -1;else return res;
}int main() {char str[1000];printf("请输入一个字符串\n");scanf("%s", str);printf("%d", func(str));return 0;
}

分析

时间复杂度应该是O(log(n)),因为这里char转换为整型也存在可能内存溢出的情况,但是没有上面的严重。
在这里插入图片描述

http://www.yayakq.cn/news/48162/

相关文章:

  • 大企业网站制作及维护折扣网站怎么做
  • 温州免费网站建站模板网页制作三剑客软件下载
  • 百度网站验证方法河南浪博网站开发
  • 网站开发知识视频教程什么叫商城网站
  • 邗江区建设局网站教育网站建设
  • 手袋 技术支持 东莞网站建设抖音代运营正规公司
  • 杭州网站现场备案wordpress展示页面模板下载
  • 纯英文网站建设青岛的互联网公司有哪些
  • 重庆城乡建设网站首页html5做网页
  • 沈阳网站建设dnglzx装修网十大平台排行榜
  • 注册域名后怎么建站博物馆 网站 建设
  • 企业做网站建设河南省建设厅官方网站
  • 阿里云备案网站名称多语种企业网站建设
  • 新校区建设网站管理规定除了 wordpress
  • 建网站 教程wordpress 活动管理
  • 网站建设人员配备电脑网站历史记录怎么查看
  • 伊滨区网站建设网站网址前的小图标怎么做
  • 外贸手机网站拖拽网站怎么做的
  • 企业网站建设费用深圳东莞专业网站营销
  • 上海网站建设备案号怎么恢复网络传播营销策划方案
  • 公司如何组建网站自贡哪家做网站的好
  • 旅游网站建设的可行性分析吉林seo关键词
  • 合肥做网站的公司百度女性做网站
  • 百度网址大全电脑版aso优化什么意思
  • 蜀都网站建设舜王十堰seo排名公司
  • 网站教育培训机构网站开发重点难点
  • 个人建站哪类站赚钱偏门项目网
  • 网站源码下载炫酷新站如何提升网站权重
  • 做网站流量点击分析的软件设计iphone手机网站
  • 网站改版新闻稿做网站下面会有小广告