蓝桥杯——2015年C++A组第3题:奇妙的数字【枚举】
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯——2015年C++A组第3题:奇妙的数字【枚举】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、題目
小明發(fā)現(xiàn)了一個(gè)奇妙的數(shù)字。它的平方和立方正好把0~9的10個(gè)數(shù)字每個(gè)用且只用了一次。
你能猜出這個(gè)數(shù)字是多少嗎?
請(qǐng)?zhí)顚?xiě)該數(shù)字,不要填寫(xiě)任何多余的內(nèi)容。
二、思路
0-9一共有10個(gè)數(shù)字,平方只能是4位數(shù),立方只可能是6位數(shù)。
因此這個(gè)數(shù)字是個(gè)二位數(shù)。范圍是10-99。
但是,用1000開(kāi)根得到31.6,因此平方是四位數(shù)范圍從32開(kāi)始,所以循環(huán)從32開(kāi)始。
所以循環(huán)范圍是32-99。
用num[i]表示數(shù)字i出現(xiàn)過(guò)的次數(shù)。如果這個(gè)數(shù)字出現(xiàn)過(guò)了,跳出循環(huán)。如果沒(méi)有出現(xiàn)過(guò),記錄。
三、題解
#include <iostream> using namespace std;int main() {int a;int b;int num[10];int flag;for (int i=32;i<100;i++){a=i*i;b=i*i*i;memset(num,0, sizeof(num));flag=1;while(a){if(num[a%10]){flag=0;break;}else{num[a%10]++;}a=a/10;}if(!flag)continue;while(b){if(num[b%10]){flag=0;break;}else{num[b%10]++;}b=b/10;}if(flag)cout << i << endl;}return 0; }?
四、結(jié)果
69
Process finished with exit code 0
?
總結(jié)
以上是生活随笔為你收集整理的蓝桥杯——2015年C++A组第3题:奇妙的数字【枚举】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Code】背包问题九讲(崔添翼)
- 下一篇: 永中Office用户使用中常见问题与解答