一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。

*问题分析与算法设计

根据题意,可设最后的商为i(i从0开始取值),用逆推法可以列出关系式:

(((i*8+7)*8)+1)*8+1=((2*i*17)+15)*18+4

再用试探法求出商i的值。

*程序说明与注释

#include

int main()

{

int i;

for(i=0;;i++) /*试探商的值*/

if(((i*8+7)*8+1)*8+1==(34*i+15)*17+4)

{ /*逆推判断所取得的当前i值是否满足关系式*/

/*若满足则输出结果*/

printf("The required number is: %d\n",(34*i+15)*17+4);

break; /*退出循环*/

}

}

*运行结果

The required number is:1993

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐