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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言算法小实例3

發(fā)布時(shí)間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言算法小实例3 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語言算法小實(shí)例

三. 一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請問該數(shù)是多少,計(jì)算并輸出符合條件的整數(shù)?關(guān)于完全平方數(shù)的定義:若一個(gè)數(shù)能表示成某個(gè)整數(shù)的平方的形式,則稱這個(gè)數(shù)為完全平方數(shù)。

思路分析:
一個(gè)數(shù)加上100是m的平方,再加上168又是n的平方,則m等于i+00的開方,n等于i+268的開方。注意sqrt函數(shù)的返回值是float類型,而我們定義的m和n都是整型變量,這里會(huì)進(jìn)行強(qiáng)制轉(zhuǎn)換,將其去掉小數(shù)點(diǎn)后的數(shù)字,只保留整數(shù)。所以如果完全平方數(shù)開方后不是整數(shù)的話,則m和n的平方也不可能等于i+100和i+268。

#include<stdio.h> int main(void) {int number,i,j;printf("輸出完全平方數(shù):\n");for(number=-100000;number<100000;number++){for(i=-100000;i<100000;i++){for(j=-100000;j<100000;j++){if((number+100==i*i)&&(number+100+168==j*j)){printf("%d\n",number);}}}} return 0; }

總結(jié):
1.上方所寫代碼的缺點(diǎn)在于循環(huán)條件計(jì)算量過于巨大,不便于計(jì)算。

2.要充分理解題意,找出相應(yīng)思路,不要因?yàn)檫@是C語言的題目就局限思考,找出正確思路后,才能寫出正確代碼。完全平方數(shù)的定義說明一個(gè)數(shù)能表示成一個(gè)整數(shù)的平方就是完全平方數(shù),注意是整數(shù)才可以,不要只想著如何讓一個(gè)整數(shù)的平方是完全平方數(shù),也可以想想如何讓一個(gè)完全平方數(shù)的開方是整數(shù)。

3.要盡量減少未知變量的個(gè)數(shù),比如本題中可以用完全平方數(shù)的開方表示m和n,而不是只用未知的整型變量m、n來表示完全平方數(shù)。

4.注意:一個(gè)數(shù)的開方并不全是整數(shù),還可能是小數(shù)。所以如果m、n不是整數(shù)的話,二者的平方便和完全平方數(shù)不相等。

正確代碼:

#include<stdio.h> #include<math.h> int main(void) {int i, m, n;printf("輸出完全平方數(shù):\n");for(i = -100000; i < 100000; i++){m = sqrt( i + 100);n = sqrt( i + 100 + 168);if((m * m == i + 100) && (n * n == i + 100 + 168)){printf("%d\n",i);}} return 0; }

運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的C语言算法小实例3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。