社区
数据结构与算法
帖子详情
有办法帮我算一下从1开始,逢4不要,5000之后是多少吗?
csu27
2005-02-26 05:33:48
有办法帮我算一下从1开始,逢4不要,5000之后是多少吗?
...全文
511
23
打赏
收藏
有办法帮我算一下从1开始,逢4不要,5000之后是多少吗?
有办法帮我算一下从1开始,逢4不要,5000之后是多少吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
I_Love_CPP
2005-03-18
打赏
举报
回复
计算总和,减去含4的就可以了
一、
总和 = [(1+5000)/2 ] * 5000 ;
二、
含4的(为了避免重复计算,从大往小来数)
千位含4的总和 = 4999 + 4998 + ...4000 (是一个最简单的等差数列) = ....
百位含4(千位和百位均不含4)的总和 = 3499 + 3498 + ...1400+400
十位含4(千位和百位均不含4)的总和 = ...
个位.....
Leaf_jo
2005-03-16
打赏
举报
回复
arrowcy(长弓手) 你太搞笑了!你的结果里面就有4。方法没错,敲错了吧?
qufo
2005-03-14
打赏
举报
回复
十进制的 5000
转换成九进制是 6765
Smile_Tiger
2005-03-14
打赏
举报
回复
楼上明智,不做含义不清的题,不然就有可能白做了
zzwu
2005-03-10
打赏
举报
回复
含糊的地方:
1."逢4不要" 的意思是指:
(1) 末尾数是4都不要,如 4,14,24,34,..104,114,...都不要
(2) 除得尽4的数不要,也就是4,8,12,16,20,...不要
(3) 其他意思.
2.5000之后是多少:
(1) 是指{1,2,3,...5000}的集合中,除去"逢4"的哪些数之后的元素个数吗?
(2) 是指1*2*3*...*5000的乘积中,除去"逢4"的数之后的乘积吗?
(3) 其他意思.
zzwu
2005-03-10
打赏
举报
回复
题目看不懂!
macbolo
2005-03-08
打赏
举报
回复
whycadi(保护视力)
你的方法是对的,我仔细看了看,非常好
macbolo
2005-03-08
打赏
举报
回复
whycadi(保护视力)
你的方法不对,你只是去掉了以4结尾的数
JasonHeung
2005-03-01
打赏
举报
回复
whycadi(保护视力) ( ) 信誉:100 2005-2-26 23:52:33 得分: 0
int fun(int input){
int tmp,output=0,rate=1;
while(input){
tmp=input%9; //逐位转化
if(tmp>3) tmp++; //如果大于3,数值上加个1
output+=tmp*rate;
rate*=10;
input/=9;
}
return output;
}
用0-9十个数字计数的是10进制,用0,1两个数字计数的是二进制,那么用0123 56789九个数字计数的不就可以认为是九进制吗?那么我们用这个九进制数十进制的5000下是多少呢?这不就是个数制转化的问题了吗?相信数制转化没人不会做吧。程序我前面已经给过了。
好!这说明重要的不是写代码的能力,而是思考分析的能力!!!!
cuixiping
2005-03-01
打赏
举报
回复
上面还漏了一句:
str=str.replace(/4/g,"5");
:) 我爱脚本
cuixiping
2005-03-01
打赏
举报
回复
5000之后是多少吗? ---问的是第5000个还是第5001个呢?
5000转换为0-8表示的9进制是6765, 相当于0123 56789表示的9进制是7876.
所以应该是7876
<script language="JavaScript">
var str=(5000).toString(9); //"6765"
str=str.replace(/8/g,"9");
str=str.replace(/7/g,"8");
str=str.replace(/6/g,"7");
str=str.replace(/5/g,"6");
document.write(str); //"7876"
</script>
佩服 whycadi(保护视力) 哦 !
pcboyxhy
2005-02-28
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n, s=8, num;
scanf("%d", &n);
for(num=n; num-s>0; s*=9)
num -= s;
s >>= 3;
while(s)
{
num = n/s; n%=s;
num += num<4?0:1;
printf("%d", num);
s/=9;
}
system("pause");
}
whycadi
2005-02-28
打赏
举报
回复
用0-9十个数字计数的是10进制,用0,1两个数字计数的是二进制,那么用0123 56789九个数字计数的不就可以认为是九进制吗?那么我们用这个九进制数十进制的5000下是多少呢?这不就是个数制转化的问题了吗?相信数制转化没人不会做吧。程序我前面已经给过了。
jivi
2005-02-28
打赏
举报
回复
这个用排列组合就能解出来了。先用数学方法表示出来。
根本不用用循环的啊
我们现在可以假设用四个空位来表示我们要往里面填的数字
□□□□ 这时我们可以先随便放一个4进入其中的一个框(不是第一个框)。那么在四个当中出现一个四的可能性就为(000-499)*3 共1500种可能性 那么放这个4进入第一框则有 (001-999)共998种可能性.
只有一个四的情况考虑完了。
再考虑有两个四的情况 也分两种情况
1.情况。没有四占1框的最共有(00-49)*3=147+1=148种.
2.情况.有占第一框的情况(00-99)*3=300种.
再考虑有三个四的情况 也分两种情况.
1.情况。没有四占1框的最共有4种.
2.情况.有占第一框的情况10*3=30种.
当然考虑完上述后还不能完全排除。还要两样依次考虑三个框情况下出现四的情况。
两个框情况下出现四的情况。一个框的情况。然后用上面的结果再减去这些情况。
最后用5000加上这个结果。最后得到的 就是 7876 嘻
虽然。但在时间复杂度上可以减少那么点点。嘻嘻啊
郁闷不了吧啊。。。。。。
BurningM
2005-02-28
打赏
举报
回复
中间可能算错了点,反正就是这样算的,正确结果是7874
你这个7874。。不满足条件
cuixiping
2005-02-27
打赏
举报
回复
7876 !
<script language="JavaScript">
var i=0,j=0;
while (i<5000){
if((++j).toString().indexOf("4")<0){
i++;
}
}
document.write(j); //7876
</script>
cuixiping
2005-02-27
打赏
举报
回复
佩服 arrowcy(长弓手) ! 他的方法好!
whycadi
2005-02-26
打赏
举报
回复
int fun(int input){
int tmp,output=0,rate=1;
while(input){
tmp=input%9; //逐位转化
if(tmp>3) tmp++; //如果大于3,数值上加个1
output+=tmp*rate;
rate*=10;
input/=9;
}
return output;
}
jp1984
2005-02-26
打赏
举报
回复
// love to flower
// m a t h e m a t i c s
#include <iostream>
#include <stdlib.h>
using namespace std;
const int N = 5000; // count the number
int test(int& n)
{
int p = n,tmp = 0,cnt = 1;
while(true)
{
while(p != 0)
{
tmp = p % 10;
p = p / 10;
if(tmp == 4)
break;
}
if(tmp != 4)
cnt++;
p = n + 1;
n++;
tmp = 0; // refresh...
if(cnt > N)
break;
}
return n;
}
int main(int argc, char *argv[])
{
int n = 1;
cout << test(n) << endl;
system("PAUSE");
return 0;
}
arrowcy
2005-02-26
打赏
举报
回复
这个好像有点意思,不过具体怎么做呢?
加载更多回复(3)
AIGC-通过搜索引擎使大模型实时获取最新数据
但因为计
算
资源、训练时间等原因,大模型没有
办法
获取实时的数据,比如GTP-4,数据的截止日期为:2023 年 4 月 如果我们想要获取 2023年4月
之后
的信息或者数据,GPT是没有
办法
帮
我们实现的。所以本次可能我们的主要...
Lisp真的是屠龙之技吗?
Lisp真的是屠龙之技吗?对Lisp的学习有一段时间了,Lisp这门50多年的语言在天朝这样一个浮躁的环境里面的确生存空间极小,除了有名的伞哥现在从事Common Lisp的开发工作之外,其他没有听说过几个。51job和智联以Lisp为关键字搜素,相关职位不到1页,几乎全部是AutoCAD Lisp开发,或者要求应聘者熟悉的一门函数语言里面出现,并且还是和perl/erlang并列的形式出现,要求
《红楼梦》的作者真的是曹雪芹吗?
随狂风去尚书令等 19,569 人赞同了该回答作者名字确实是叫曹雪芹,但此曹雪芹绝不是江宁织造府的那位“曹雪芹”。谈这个问题,必须先认识到一点:曹雪芹这三个字它只是个笔名,红楼的作者,在真实历史中,另有自己的真名实姓。而我们想找的,就是“曹雪芹”究竟是历史上的哪路好汉。1921年,胡适写了一本《红楼梦考证》,说曹雪芹是康乾时期江宁织造曹府的公子,曹寅之孙,曹顒之子。自从胡适提出“曹府论”后,很多红学家和爱好者以此为基础,从红学中另开辟出一个分支“曹学”,可惜这么多年过去,这个曹学并没有研究出什么让人信服的
python例题10
python例题10 题目1:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 li = [1,2,3,4] sum = 0 for x in li: for y in li: for z in li: count = (x100) + (y10) + z if x != y and x != z and y != z: sum = sum + 1 print(“三位数是:”
《三国演义》里到底描写了多少个人物,你知道吗?
罗贯中在《三国演义》里到底描写了多少个人物?下面我将列出一组数字,有的朋友可能会怀疑数字的准确性。这个没有别的
办法
,只好请怀疑的朋友自己找来《三国演义》清点
一下
,保证你点一遍一个数字,再点一遍和上一遍还是不一样。呵呵,还是请你相信我列的数字吧。imgLoading罗贯中(1330年-1400年),名本,字贯中,山西太原人,《三国演义》的作者。小说中一共描写了1191个人物,其中武将436人,文官4...
数据结构与算法
33,009
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章