level 11
水龙之魂
楼主
1、利用格利高公式求π。,直到最后一项的值小于10-6为止。
(答案:3.1415946569E+00)
2、写程序求最小正整数m、n(0<n<m)为何值时,1989m与1989n的最后三位数字相同?
算法:这类数字很大且有效数字位数很多(超出最多有效位数extended数据类型有效数字18位)的数字问题,一定要另辟蹊径寻找突破口,注意到此题只要求最后三位数字相同,则我最多保留最后四位有效数字即可进行判断。还请记住这样一个事实,如1989×1989=3956121,3956121×1989=7868724669,最后四位数字是“4669”,而我把3956121取其最后的四位数“6121”与1989相乘即6121×1989=12174669,最后四位数字也是“4669”,没有破坏最后四位有效数字的值,因此可以通过这种方法来编写此程序。
(答案:m=51; n=1);
3、入两个正整数A和B,其中A、B都小于32767,求A/B的值。要求计算结果精确到小数点后N(1≤N≤200)位。(★★★)
(测试数据:①输入A=1,B=1997,N=25;
答案:0.0005007511266900350525788
②输入A=19997,B=197,N=15;
答案:101.507614213197969)
2014年08月24日 05点08分
1
(答案:3.1415946569E+00)
2、写程序求最小正整数m、n(0<n<m)为何值时,1989m与1989n的最后三位数字相同?
算法:这类数字很大且有效数字位数很多(超出最多有效位数extended数据类型有效数字18位)的数字问题,一定要另辟蹊径寻找突破口,注意到此题只要求最后三位数字相同,则我最多保留最后四位有效数字即可进行判断。还请记住这样一个事实,如1989×1989=3956121,3956121×1989=7868724669,最后四位数字是“4669”,而我把3956121取其最后的四位数“6121”与1989相乘即6121×1989=12174669,最后四位数字也是“4669”,没有破坏最后四位有效数字的值,因此可以通过这种方法来编写此程序。
(答案:m=51; n=1);
3、入两个正整数A和B,其中A、B都小于32767,求A/B的值。要求计算结果精确到小数点后N(1≤N≤200)位。(★★★)
(测试数据:①输入A=1,B=1997,N=25;
答案:0.0005007511266900350525788
②输入A=19997,B=197,N=15;
答案:101.507614213197969)