设a为自然数,2009a=111...1111(n个1),则n最小值是多少
发布网友
发布时间:2024-09-28 10:50
我来回答
共3个回答
热心网友
时间:2024-10-01 02:52
解: 2009*a=111111 那么按照乘法来算!
2009
*abcd9
= 18081
14063 (那么d和9想乘个位必为3,所以d=7)
=1587(2) 那么后面c=6
1587(2)
12054
=1364(3) 那么后面b=3
6027
=739(4) 那么a0=8
16072
=168(6)
14063
=1423(7)
……
我是按这种方法做的,不知道有没有简便方法,我做到16+了,还没有全1,时间有限,只能这样了,希望楼主能够做出来。
热心网友
时间:2024-10-01 02:49
我写个JS程序,结果算到300位多的时候就算不下去了,溢出
除以2009得到余数: <span id="msg0"></span><br>
除以2009得到余数: <span id="msg"></span><br>
1 的位数: <span id="msg1"></span><br>
<a href="javascript:pause()">Pause</a> | <a href="javascript:go()">GO</a>
<script>
var isPause=true;
var itime=10;//ms
var num=1;
var running;
function pause(){
if(!isPause){
clearInterval(running);
isPause=true;
}
}
function go(){
if(isPause){
running=setInterval("r()",itime);
isPause=false;
}
}
function r(){
var _1=one(num);
var _2=(_1%2009)+"";
document.getElementById("msg0").innerHTML=_1;
document.getElementById("msg").innerHTML=_2;
document.getElementById("msg1").innerHTML=num;
if(_1==0)
pause();
if(num>1000) pause();
num++;
}
function one(x){
var a="";
for(var i=0;i<x;i++){a+="1";}
return Number(a);
}
</script>
=========================================================================
按照 wolfdong7 的思路
又写了个JS程序,算出来了,210不知道对不对
<style>
div{word-wrap:break-word;font-size:12px; }
</style>
<a href="javascript:pause()">Pause</a> | <a href="javascript:go()">GO</a> | <a href="javascript:main1()">GO1</a><br>
a: <div id="msg_a"></div><br>
n: <div id="msg_n"></div><br>
midval: <div id="msg_midval"></div><br>
midStr: <div id="msg_midStr"></div><br>
2009*a: <div id="msg3"></div><br>
<script>
var isPause=true;
var itime=1;//0.001秒计算一次
var g9={a1:9,a2:8,a3:7,a4:6,a5:5,a6:4,a7:3,a8:2,a9:1};//得到1 ,必须用9和9乘=81 , (10-8)*9=18 用于分析
var gg={a1:0,a2:9,a3:8,a4:7,a5:6,a6:5,a7:4,a8:3,a9:2};//11- 用于分析
var addArr="18081,";;
var midvalue=0;
var n=1;
var aStr="9";
var jinwei=0;
var running;
var _1;
var _2;
var _3;//main()
var _4;//main()
var _5;//main()
var _a;//main()
//
function showMsg(id,value){
document.getElementById(id).innerHTML=value;
}
//
function s(id,value){
document.getElementById(id).innerHTML=value+"<br>";
}
//返回倒数第二个字符
function getLast1rd(x){
_1=x+"";
_2=_1.length;
//alert(_1.substring(_2-1,_2));
return Number(_1.substring(_2-1,_2));
}
//返回倒数第二个字符
function getLast2rd(x){
_1=x+"";
_2=_1.length;
//alert(_1.substring(_2-1,_2));
return Number(_1.substring(_2-2,_2-1));
}
//循环主函数
function main(){
addArr=addArr.replace(/[0-9],/g,",").replace(/,+/g,",");
midvalue=eval(("0+"+(addArr.replace(/,/g,"+"))+"+0"+"+"+jinwei).replace(/[+]+/g,"+")); //跳位相加;考虑 进位
_3=midvalue+"";
//_3="0"+_3.replace(/\d,/g,"+");
//s("msg_midval",_3);
if(_3.replace(/1/g,"")==""){
n+=_3.length;
pause();
showMsg("msg_n",n);
showMsg("msg_a",aStr);
}else{
_4=11-Number(getLast1rd(midvalue));//10831
_4=getLast1rd(11-Number(getLast1rd(midvalue)));
_a=getLast1rd(10-_4);
aStr=_a+""+aStr;//a的值
showMsg("msg_a",aStr);
addArr+=(_a*2009)+",";//
jinwei=eval("getLast2rd(1000+getLast1rd("+("s"+addArr+"s").replace(/,*s,*/g,"").replace(/,/g,")+getLast1rd(")+")+jinwei)");//考虑上次进位
//alert(jinwei);
n++;//1的个数增加
//s("msg3",Number(aStr)*2009);
}
//if(n%100==0)
showMsg("msg_n",n);
//s("msg_midStr",addArr);
}
//
function main1(){
isPause=false;
while(!isPause){
main();
}
}
//
function pause(){
if(!isPause){
if(running)
clearInterval(running);
isPause=true;
}
}
//
function go(){
//main();
//isPause=false;
if(isPause){
running=setInterval("main()",itime);
isPause=false;
}
}
//alert(eval("4+5+6"));
</script>
<hr size=1 />
<pre>
9 18081
7 14063
6 12054
3 6027
8 16072
9 18081
2009*a=111111 那么按照乘法来算!
2009
=
2009
9
18081
14063 (那么d和9想乘个位必为11-8,所以d=7)
=(2)
1587 那么后面c=6
1587(2)
12054
=1364(3) 那么后面b=3
6027
=739(4) 那么a0=8
16072
=168(6)
14063
=1423(7)
……
</pre>
热心网友
时间:2024-10-01 02:53
解: 2009*a=111111 那么按照乘法来算!