本週題解

算一個數是2的幾次方:
在以前,我是隻會用For語句的,所以這道題怎麼也做不出來。做是可以做,但是沒有範圍,控制變量不知道選到幾。for語句做不出,那就用別的循環了。所以,要用while。

n先除以2,直到等於1爲止。n每除以一次2,s+1。
所以代碼如下

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,s;
    cin>>n;
    s=0;//s賦初值,不賦初值程序輸出結果不對。
    while (n!=1)    
    {
        n=n/2;
        s=s+1;
    }
    cout<<s<<endl;
    return 0;
} 

判斷三角形:
輸入一個三角形的邊長,分別判斷這個三角形是否是等邊三角形、等腰三角形、三角形。
解:
三角形條件:任意兩邊之和大於第三邊。
等腰三角形:有兩邊相等,且是三角形。
等邊三角形:三邊長度相等。

題目要求先判斷是否是等邊三角形,再判斷是否是等腰三角形,然後是三角形。
所以是等邊三角形就一定是等腰和普通三角形。
不是等邊三角形,但是是等腰三角形的一定是普通三角形。
但是在判斷三角形等腰和等邊的時候要判斷邊長有沒有0。
這題還有一個要注意的,本題輸出的不是“yes”而是“yse”
代碼如下:
    #include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    if ((a==b)&&(b==c)&&(c!=0))//條件一定不能忘記0
      cout<<"yse"<<endl;
      else cout<<"no"<<endl;
    if (((a==b)||(b==c)||(c==a))&&((a!=0)&&(b!=0)&&(c!=0)))
      cout<<"yse"<<endl;
      else cout<<"no"<<endl;
    if (((a+b>c)&&(c+b>a)&&(a+c>b))&&((a!=0)&&(b!=0)&&(c!=0)))
      cout<<"yse"<<endl;
      else cout<<"no"<<endl;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章