日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1252: [蓝桥杯2015初赛]奇妙的数字

發布時間:2024/8/1 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1252: [蓝桥杯2015初赛]奇妙的数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目敘述:

?小明發現了一個奇妙的數字。它的平方和立方正好把0~9的10個數字每個用且只用了一次。你能猜出這個數字是多少嗎?

輸出格式:

?請輸出該數字,不要輸出任何多余的內容。

思路:

我么來判斷一下當前數q它是一個幾位數呢,
當q為1位數的時候,q*q最大才是81,q*q*q最大時三位數,不滿足條件
當q為3位數的時候,q*q最小為10000,q*q*q*為1000000,此時k=100不滿足條件
所以q是一個2位數:

當q=31時,q*q?= 961,是三位數,q*q*q=29791,不滿足條件
當q= 32時,q*q?= 1024,所以我們從q=32開始遍歷,一直到99.

代碼:

#include<stdio.h> #include<string.h> int main() {int i,len,j,q,flag;char a[100],b[100],c[10]={'0','1','2','3','4','5','6','7','8','9'};for(q=32;q<99;q++){sprintf(a,"%d",q*q);//這里sprintf是將q*q的數轉化成字符數組例如123變成‘1’,‘2’,‘3’sprintf(b,"%d",q*q*q);//同理strcat(a,b);//將兩個數組鏈接一塊,合并數組len=strlen(a);//求數組長度if(len=10)//由題意得,需滿足0-9十個字符{for(i=0;i<10;i++){flag=0;for(j=0;j<10;j++){if(c[i]==a[j])//判斷十個字符是否為0-9{flag=1;}}if(flag==0)//有一個不一樣就退出循環,該q不成立break;}if(flag==1)//如果還是1則說明成立break;}}printf("%d\n",q);return 0; }

這里是用字符寫的,其實也可以不用sprintf,直接將q*q的數逐漸%10存入數組,用整形數組一樣的道理!
?

總結

以上是生活随笔為你收集整理的1252: [蓝桥杯2015初赛]奇妙的数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。