解题思路:
新手见解,欢迎指正!
首先根据题目的意思,我们可以理解为以下几个式子
(n表示求解数,x,y表示商)
n/8=x1 ...1
x1/8=x2 ...1
x2/8=a ...1
n/17=y ...4
y/17=2a ...15
之后我们把这几个式子整合一下,用带入消元法可以得到以下两个关于a的式子
(((n-1)/8)-1)/8-7)/8=a
((n-4)/17)-15)/17=2a
再把这两个式子合并就得到了判断n的条件
(((n-1)/8)-1)/8-7)/8*2==((n-4)/17)-15)/17
再通过题目条件我们可以得知这个n的值为4+k*17,我们可以以此条件来减少循环次数
注意事项:
注意计算时的类型转换,最好在运算中使用浮点型数据,不然容易出错
参考代码:
#include<stdio.h> int main() { double N=4; while(1) { N+=17; if( ((((N-1.0)/8.0)-1.0)/8.0-7.0)/8.0*2==((N-4.0)/17.0-15.0)/17.0 ) { printf("%.0llf\n",N); break; } } return 0; }
0.0分
6 人评分
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:567 |
C语言训练-斐波纳契数列 (C语言代码)浏览:2806 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:594 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:543 |
回文数字 (C语言代码)浏览:2508 |
1118(求助_已解决)浏览:329 |
DNA (C语言代码)浏览:745 |
整数平均值 (C语言代码)浏览:777 |
排序算法(选择,插入,冒泡)浏览:774 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:740 |