用C語言寫,2到5000中含6和8的數,急需,希望大神指教一下,哎,新手好難
完整的算法代碼:
int a = 0, aa = 0, aaa = 0;/*用C語言寫,2到5000中含6和8的數,急需,希望大神指教一下,哎,新手好難*/
do
{
while (a == (aa * 10 + 6))
{
printf_s("%d ", a * 10 + aaa);
if (++aaa > 9){ aaa = 0; break; }
}
while (a == (aa * 10 + 8))
{
printf_s("%d ", a * 10 + aaa);
if (++aaa > 9){ aaa = 0; break; }
}
if (a != (aa * 10 + 6))
if (a != (aa * 10 + 8))
{
printf_s("%d ", a * 10 + 6);
printf_s("%d ", a * 10 + 8);
}
//if (a<50)
//{
// while (aa < 10) printf_s("%d ", (a * 10 + 6) * 10 + aa++);
// while (aaa < 10) printf_s("%d ", (a * 10 + 8) * 10 + aaa++);
// aa = 0; aaa = 0;
//}/*如果不要求順序的話算法:*/
if (a == (aa * 10 + 8)) ++aa;
++a;
} while (a<500);
寫算法主要通過分析一步步解決問題,最後得到完整算法,比起其他循環效率不止提高10倍,無論是循環用步進1或2.
如果步進為1則輸出6和8要循環10次,如果步進為2則要循環5次,而我這個只需循環一次,除了大等於十位的數是6或8要循環10次外,如60-69,80-89,160-169,180-189等,這些都是可以寫為算法的,這樣才稱為算法。