C语言问题:有台阶x阶,若每次跨2阶最后剩1阶,每次跨3阶最后剩2阶,每次跨5阶最后剩4阶,每次跨6阶最后剩5阶,每次跨7阶刚好走完。求1000以内x可能的值

有台阶x阶,若每次跨2阶最后剩1阶,每次跨3阶最后剩2阶,每次跨5阶最后剩4阶,每次跨6阶最后剩5阶,每次跨7阶刚好走完。求1000以内x可能的值

#include<stdio.h>
main()
{
int i=1;
while(i<1000)
{
if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0)
{
printf("%d\n",i);

}
i++;
}
return 0;

}


第一次写的时候while循环里用的不是if判断,用的是嵌套的while 里面的循体是printf("%d\n",i);i++;。

后运行发现错误,纠正为if。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一道关于同余方程的数学问题。可以使用中国余定理来解决。 首先根据题意,可以列出如下同余方程组: ``` x ≡ 1 (mod 2) x ≡ 2 (mod 3) x ≡ 4 (mod 5) x ≡ 5 (mod 6) x ≡ 0 (mod 7) ``` 可以使用逐步推导的方法解。 首先考虑第一步,根据第一个同余方程,可以列出: ``` x = 2k + 1 ``` 其中 k 为整数。 将其代入第二个同余方程,得到: ``` 2k + 1 ≡ 2 (mod 3) ``` 化简后得到: ``` k ≡ 1 (mod 3) ``` 代入第三个同余方程,得到: ``` x = 6m + 2 ``` 其中 m 为整数。 代入第四个同余方程,得到: ``` 6m + 2 ≡ 5 (mod 6) ``` 化简后得到: ``` m ≡ 3 (mod 6) ``` 代入第五个同余方程,得到: ``` x = 42n ``` 其中 n 为整数。 将其代入第一个同余方程,得到: ``` 42n ≡ 1 (mod 2) ``` 化简后得到: ``` n ≡ 1 (mod 2) ``` 综合以上结果,可以得到: ``` x = 420t + 301 ``` 其中 t 为整数。 因为最后一步7,所以 x 必须满足: ``` x ≡ 0 (mod 7) ``` 代入上式,得到: ``` 420t + 301 ≡ 0 (mod 7) ``` 化简后得到: ``` t ≡ 5 (mod 7) ``` 综合以上结果,可以得到: ``` x = 420 * 5 * k + 301 = 2101 + 2100k ``` 其中 k 为整数。 因为数需要是正整数,所以最终的答案为: ``` x = 2101 + 2100k,其中 k 为正整数。 ``` 因为题目中要最后才正好一,所以可以得到: ``` x = 2101 + 2100 = 4201 ``` 所以这条梯共有 4201

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值