1 回答

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
#include <stdio.h>
int main()
{
?? ?int n,m,i,j,k,max,number,array[1000];
?? ?j = 0;
?? ?scanf_s("%d%d", &n, &m);
?? ?i = n;
?? ?if (m == n)
?? ?{
?? ?
?? ??? ??? ?number = i;
?? ??? ??? ?while (number % 2 == 0)
?? ??? ??? ??? ?number /= 2;
?? ??? ??? ?while (number % 3 == 0)
?? ??? ??? ??? ?number /= 3;
?? ??? ??? ?while (number % 5 == 0)
?? ??? ??? ??? ?number /= 5;
?? ??? ??? ?if (number == 1)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("%d", n);
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?printf("%d %dNO", n, m);
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ?}
?? ?else
?? ?{
?? ??? ?for (i = n; i <= m; i++)
?? ??? ?{
?? ??? ??? ?number = i;
?? ??? ??? ?while (number % 2 == 0)
?? ??? ??? ??? ?number /= 2;
?? ??? ??? ?while (number % 3 == 0)
?? ??? ??? ??? ?number /= 3;
?? ??? ??? ?while (number % 5 == 0)
?? ??? ??? ??? ?number /= 5;
?? ??? ??? ?if (number == 1)
?? ??? ??? ?{
?? ??? ??? ??? ?array[j] = i;
?? ??? ??? ??? ?j++;
?? ??? ??? ??? ?k = j;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ??? ?number = 0;
?? ??? ?}
?? ?}
?? ?if (number == 1)
?? ?{
?? ??? ?for (i = n; i <= m; i++)
?? ??? ?{
?? ??? ??? ?for (j = 0; j < k; j++)
?? ??? ??? ??? ?if (array[j + 1] > array[j])
?? ??? ??? ??? ??? ?max = array[j + 1];//最大丑數(shù)
?? ??? ?}
?? ??? ?printf("%d", max);
?? ?}
?? ?if (number == 0)
?? ??? ?printf("%d %dNO", n, m);
?? ?return 0;
}除了可能的溢出問題,以及時(shí)間復(fù)雜度等考慮,算是勉強(qiáng)解決了這一問題吧(我還小,嘿嘿)。。。。

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
#include <stdio.h>
int main()
{
?? ?int n,m,i,j,k,max,number,array[1000];
?? ?j = 0;
?? ?scanf_s("%d%d", &n, &m);
?? ?for (i = n; i <= m; i++)
?? ?{
?? ??? ?number = i;
?? ??? ?while (number % 2 == 0)
?? ??? ??? ?number /= 2;
?? ??? ?while (number % 3 == 0)
?? ??? ??? ?number /= 3;
?? ??? ?while (number % 5 == 0)
?? ??? ??? ?number /= 5;
?? ??? ?if (number == 1)
?? ??? ?{
?? ??? ??? ?array[j] = i;
?? ??? ??? ?j++;
?? ??? ??? ?k = j;
?? ??? ?}
?? ?}
?? ?for (i = n; i <= m; i++)
?? ?{
?? ??? ?for(j=0;j<k;j++)
?? ??? ?if (array[j + 1] > array[j])
?? ??? ??? ?max = array[j + 1];
?? ?}
?? ?printf("%d", max);
?? ?return 0;
}評(píng)論改的代碼格式。。。。[n,m]范圍內(nèi)最大丑數(shù)求解代碼,應(yīng)該沒問題,目前在想如何加上無(wú)丑數(shù)輸出no的情況
用的number代替i來給丑數(shù)輸入數(shù)組,但是如何改變number或者再添加一個(gè)變量使得number(number=0或者A=number時(shí)A=0使得printf(“%d”,max)跳過,而輸出printf(“no”)
- 1 回答
- 0 關(guān)注
- 1777 瀏覽
添加回答
舉報(bào)