一個正整數 x, ÷m 余 a;÷ n 余 b,輸入 m,n,a,b,求 x
備注:x 有可能無解,如果無解,給出無解提示
uj5u.com熱心網友回復:
不是告訴你思路了嗎?x=m*i+a=n*j+b
推出
n*j=m*i+(a-b)
推出
j=(m*i+(a-b))/n
因為 i 和 j 是整數,所以(m*i+(a-b))必須能被n整除才能保證 j 是整數
所以,i從0一直回圈到整數的最大值,看看能否有滿足條件的 i,找到 i 就是有解,否則就是無解
int mian() {
int a,b,m,n,i;
scanf("%d%d%d%d", &m, &n, &a, &b);
for (i=0; ; i++) {
if (i<0) {
printf("無解");
break; //i越界變成負數說明無解
}
else if ((m*i+a-b)%n == 0) {
printf("有解:x=%d", m*i+a);
break;
}
}
return 0;
}
uj5u.com熱心網友回復:
簡單粗暴,僅供參考:#include <stdio.h>
int main(void)
{
unsigned int a, b, m, n, x;
scanf("%d%d%d%d", &m, &n, &a, &b);
x = 1;
while(x)
{
if ((x % m == a) && (x % n == b))
{
printf("有解:x=%u", x);
return 0;
}
x++;
}
printf("無解");
return 1;
}
uj5u.com熱心網友回復:
因為你的有錯呀,哈哈哈哈uj5u.com熱心網友回復:
眼睛瞪大一點,都是對的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238238.html
標籤:C語言
上一篇:大一學生求助
下一篇:用*號列印實型心形圖案
