真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

百度松果菁英班“天天向上”擂臺賽第一期題解-創(chuàng)新互聯(lián)

整數(shù)運算

基本的輸入輸出

為信宜等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及信宜網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、信宜網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#includeusing namespace std;
int main()
{
    int a,b;
    scanf("%d,%d",&a,&b);
    cout<< a<< "+"<< b<< "="<< a + b<< endl;
    cout<< a<< "-"<< b<< "="<< a - b<< endl;
    return 0;
}
日期

格式化輸入即可

#includeusing namespace std;
int main()
{
    int y,m,d;
    scanf("%2d/%2d/%4d",&m,&d,&y);
    printf("%04d%02d%02d",y,m,d);
    return 0;
}
平均分

基本的輸入輸出

#includeusing namespace std;
int main( )
{
    double a,b,c;
    cin >>a >>b >>c;
    printf("%lf\n%lf",a + b + c,(a + b + c) / 3.0);
    return 0;
}
大公約數(shù)

高中數(shù)學(xué):輾轉(zhuǎn)相除法

#includeusing namespace std;
int gcd(int a,int b)
{
    if(a % b == 0)return b;
    else return gcd(b,a % b);
}
int main( )
{
    int a,b;
    cin >>a >>b;
    cout<< gcd(a,b)<< endl;
    return 0;
}
整除幸運數(shù)

定義一個函數(shù)來實現(xiàn)提取某個數(shù)每位上的數(shù)字,一旦遇到不含7或者4的情況則返回false,代表此數(shù)不是幸運數(shù),否則返回true

實現(xiàn)函數(shù)

bool judge(int n)
{
    while(n >0)
    {
        int num = n % 10;
        if(num != 4 && num != 7)return false;
        n /= 10;
    }
    return true;
}

eg1:

n = 8484848

第一次循環(huán):n = 8484848,num = 8,不符合情況,返回false

eg2:

n = 4747447

第一次循環(huán):n = 4747447,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第二次循環(huán):n = 474744,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第三次循環(huán):n = 47474,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第四次循環(huán):n = 4747,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第五次循環(huán):n = 474,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第六次循環(huán):n = 47,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第七次循環(huán):n = 4,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)

第八次循環(huán):由于4 / 10 = 0,n = 0,不滿足while循環(huán)條件,跳出循環(huán)返回true

#includeusing namespace std;
bool judge(int n)
{
    while(n >0)
    {
        int num = n % 10;
        if(num != 4 && num != 7)return false;
        n /= 10;
    }
    return true;
}
int main()
{
    int n;
    cin >>n;
    int flag = 0;
    for(int i = 2;i<= n;i ++ )
    {
        if(judge(i) && n % i == 0)
        {
            flag = 1;
            break;
        }
    }
    if(flag == 1)cout<< "YES";
    else cout<< "NO";
    return 0;
}
線段

本質(zhì)為前n項和的求取的遞推

以下分別為當(dāng)n = 1、2、3、4時線段的條數(shù)

可以發(fā)現(xiàn)題目讓求解的為(n - 1)的階乘

int sum(int n)
{
    int ans = 0;
    for(int i = 0;i<= n;i ++ )ans += i;
    return ans;
}

在mian函數(shù)重調(diào)用即可

#includeusing namespace std;
int sum(int n)
{
    int ans = 0;
    for(int i = 0;i<= n;i ++ )ans += i;
    return ans;
}
int main()
{
    int n;
    cin >>n;
    cout<< sum(n - 1)<< endl;
    return 0;
}
圓切平面

注意:本題求取的是平面

遞推+貪心思維:假設(shè)新圓的添加總能完美相交于之前所有圓

一個圓截得的平面數(shù)2

兩個圓截得的平面數(shù)4

三個圓截得的平面數(shù)為8

設(shè)n - 1個圓最多分割a[n - 1]個平面,在添加第n個圓之后能夠完美分割前n -1個圓,于是新增加的平面數(shù)即為2 * (n - 1),由遞推可得:a[i] = a[i - 1] + 2 * (n - 1)

如果還不清楚的話,請看數(shù)學(xué)推論

#includeusing namespace std;
const int N = 1000000 + 10;
int a[N];
int main()
{
    int n;
    cin >>n;
    a[1] = 2;
    a[2] = 4;
    for(int i = 3;i<= n;i ++ )a[i] = a[i - 1] + 2 * (i - 1);
    cout<< a[n]<< endl;
    return 0;
}
數(shù)字7

若是7的和或者差,則7必定為其因子,將n對7取余即可,注意特判,0也屬于正確答案。例如:7 - 7

#includeusing namespace std;
int main()
{
    int n;
    cin >>n;
    if(n == 0)
    {
        cout<< "YES";
        return 0;
    }
    if(n< 0)n = abs(n);
    if(n % 7 == 0)cout<< "YES";
    else cout<< "NO";
    return 0;
}
個人所得稅

大模擬、if-else分支結(jié)構(gòu)

#includeusing namespace std;
int main()
{
    int n,ans = 0;
    cin >>n;
    if(n<= 500)ans = n * 0.05 - 0;
    else if(n >500 && n<= 2000)ans = n * 0.1 - 25;
    else if(n >2000 && n<= 5000)ans = n * 0.15 - 125;
    else if(n >5000 && n<= 20000)ans = n * 0.2 - 375;
    else if(n >20000 && n<= 40000)ans = n * 0.25 - 1375;
    else if(n >40000 && n<= 60000)ans = n * 0.3 - 3375;
    else if(n >60000 && n<= 80000)ans = n * 0.35 - 6375;
    else if(n >80000 && n<= 100000)ans = n * 0.4 - 10375;
    else ans = n * 0.45 - 15375;
    cout<< ans<< endl;
    return 0;
}
偶數(shù)位

十進(jìn)制與二進(jìn)制的互相轉(zhuǎn)換

十進(jìn)制轉(zhuǎn)二進(jìn)制,定義trans函數(shù)

十進(jìn)制轉(zhuǎn)二進(jìn)制的本質(zhì)為:n不斷模2取余,倒序鏈接即可

string trans(int n)
{
    string s;
    while(n >0)
    {
        int num = n % 2;
        char c = num + '0';
        s += c;
        n /= 2;
    }
    reverse(s.begin(),s.end());
    return s;
}

eg:

10

第一次循環(huán):n = 10,num = 0,s += s + '0';s = "0";n /= 2;

第二次循環(huán):n = 5,num = 1,s = s + '1';s = "01";n /= 2;

第三次循環(huán):n = 2,num = 0,s = s + '0';s = "010" ;n /= 2;

第四次循環(huán):n = 1,num = 1,s = s + '1';s = "0101" ;n /= 2;

第五次循環(huán)不再執(zhí)行,因為n == 0跳出

再將s反轉(zhuǎn)得到"1010"即為10的二進(jìn)制數(shù)

替換偶數(shù)位為0

void deal(string &s)
{
    reverse(s.begin(),s.end());
    for(int i = 0;i< s.size();i ++ )
    {
        if(i % 2 == 0)s[i] = '0';
    }
    reverse(s.begin(),s.end());
}

由于操作以右端為開頭,反轉(zhuǎn)過來操作即可,操作之后再反轉(zhuǎn)返回

十進(jìn)制轉(zhuǎn)二進(jìn)制

int getans(string s)
{
    reverse(s.begin(),s.end());
    int w = 1,ans = 0;
    for(int i = 0;i< s.size();i ++ )
    {
        int num = s[i] - '0';
        ans += num * w;
        w *= 2;
    }
    return ans;
}

最右端為第0位,權(quán)重為2^0 = 1,其后隨著位數(shù)的增加權(quán)重依次增大,累加即可

int getans(string s)
{
    reverse(s.begin(),s.end());
    int w = 1,ans = 0;
    for(int i = 0;i< s.size();i ++ )
    {
        int num = s[i] - '0';
        ans += num * w;
        w *= 2;
    }
    return ans;
}

在main函數(shù)中調(diào)用即可

#include#include  
using namespace std;
string trans(int n)
{
    string s;
    while(n >0)
    {
        int num = n % 2;
        char c = num + '0';
        s += c;
        n /= 2;
    }
    reverse(s.begin(),s.end());
    return s;
}
void deal(string &s)
{
    reverse(s.begin(),s.end());
    for(int i = 0;i< s.size();i ++ )
    {
        if(i % 2 == 0)s[i] = '0';
    }
    reverse(s.begin(),s.end());
}
int getans(string s)
{
    reverse(s.begin(),s.end());
    int w = 1,ans = 0;
    for(int i = 0;i< s.size();i ++ )
    {
        int num = s[i] - '0';
        ans += num * w;
        w *= 2;
    }
    return ans;
}
int main()
{
    int n;
    cin >>n;
    string s;
    s = trans(n);
    deal(s);
    cout<< getans(s);
    return 0;
}
合并

對應(yīng)數(shù)乘其權(quán)重累加

#includeusing namespace std;
int main()
{
    int a,b,c;
    cin >>a >>b >>c;
    cout<< a * 100 + b * 10 + c<< endl;
    return 0;
}
公式計算

注意c ++ 默認(rèn)下取整,且有著即使命名為double s,s = 3 / 2仍不等于1.5的情況出現(xiàn),避免此類情況將公式中出現(xiàn)的所有整數(shù)加個.0后綴即可

#includeusing namespace std;
int main()
{
    int x,a;
    cin >>x >>a;
    double ans = 0.5 * (a * 1.0 * x * 1.0 + (a + x) * 1.0 / (4 * a * 1.0));
    printf("%.2lf",ans);
    return 0;
}
進(jìn)制形式

可以偷個懶使用c語言的格式化輸出

%o 八進(jìn)制 %d 十進(jìn)制 %x 十六進(jìn)制

不偷懶的話也可以學(xué)學(xué)函數(shù)實現(xiàn)進(jìn)制轉(zhuǎn)換

#includeusing namespace std;
int main()
{
    int n = 128;
    int m = 456789;
    printf("%d %o %x\n",n,n,n);
    printf("%d %o %X\n",m,m,m);
    return 0;
}
等差數(shù)列

首先儲存a,b,c,vector為c ++ 類型的動態(tài)數(shù)組,sort函數(shù)默認(rèn)排序為升序排序

因此將這三個數(shù)存入vector后sort即可得到一個可能遞增的有序序列(可能a == b || a == c || a == b && a == c && b == c)

由高中數(shù)學(xué)知識得,等差中項為前一項和后一項的和除以2

為了避免出現(xiàn)c ++ 向下取整的特殊情況,將公式進(jìn)行等價變形

b = (a + c) / 2 ->2 * b = a + c

#include#include#include 
using namespace std;
vectorA;
int main()
{
    for(int i = 1;i<= 3;i ++ )
    {
        int num;
        cin >>num;
        A.push_back(num);
    }
    sort(A.begin(),A.end());
    if(A[0] + A[2] == 2 * A[1])cout<< "YES";
    else cout<< "NO";
    return 0;
}
網(wǎng)球比賽

無輸入,邏輯思考出答案,直接輸出即可

#includeusing namespace std;
int main()
{
    cout<< "a with z"<< endl;
    cout<< "b with x"<< endl;
    cout<< "c with y"<< endl;
    return 0;
}
大小寫的轉(zhuǎn)換

根據(jù)ASCII碼轉(zhuǎn)換:ASCII表

小寫英文字母的ASCII碼比對應(yīng)的大寫英文字母的ASCII碼要大32

#includeusing namespace std;
int main()
{
    char c;
    cin >>c;
    if(c >= 'a' && c<= 'z')c -= 32;
    else if(c >= 'A' && c<= 'Z')c += 32;
    cout<< c<< endl;
    return 0;
}
寬度與對齊

%m.d輸出寬度為m的整數(shù)

%d為右對齊,%-d為左對齊,

#includeusing namespace std;
int main()
{
    int a = 455;
    int b = -123;
    int c = 987654;
    printf("%-5d %5d\n",a,a);
    printf("%-5d %5d\n",b,b);
    printf("%-5d %5d\n",c,c);
    return 0;
}
左右對齊

%m.nlf輸出寬度為m,精度為n的浮點數(shù)

%lf為右對齊,%-lf為左對齊

#includeusing namespace std;
int main()
{
    double a = 3.1415926;
    double b = 22.3456;
    printf("%-14.6lf %14.6lf\n",a,a);
    printf("%-14.6lf %14.6lf\n",b,b);
    return 0;
}
輸入寬度

格式化讀入與格式化輸出

#includeusing namespace std;
int main()
{
    int a,b,c;
    scanf("%3d%3d%3d",&a,&b,&c);
    printf("%d %d %d",a,b,c);
    return 0;
}
寬度精度

使用c ++ 實現(xiàn),#include為其頭文件

setiosflags(ios::fixed)為輸出固定位數(shù)

setprecision(m)為輸出精度為m的小數(shù)

setw(n)為輸出寬度為n的數(shù)字

#include#includeusing namespace std;
int main()
{
    int n,m;
    cin >>n >>m;
    double a = 18.16054;
    double b = 17.676767;
    cout<< setw(n)<< setiosflags(ios::fixed)<< setprecision(m)<< a<< ' '<< setw(n)<< setiosflags(ios::fixed)<< setprecision(m)<< b<< endl;
    return 0;
}
四位數(shù)逆序

移步至上文《數(shù)字7》,同理,換湯不換藥

#includeusing namespace std;
int main()
{
    int n;
    cin >>n;
    while(n >0)
    {
        cout<< n % 10;
        n /= 10;
    }
    return 0;
}
整理玩具

公式遞推:

假設(shè)有一個玩具:{1}

假設(shè)有兩個玩具:{1,1} {2}

假設(shè)有三個玩具:{1,1,1} {1,2}

假設(shè)有四個玩具:{1,1,1,1} {1,1,2} {2,2}

假設(shè)有五個玩具:{1,1,1,1,1} {1,2,2} {1,1,1,2}

對應(yīng)答案依次為:

當(dāng)n = 1時,1 + 0 = 1

當(dāng)n = 2時,1 + 1 = 2

當(dāng)n = 3時,1 + 1 = 2

當(dāng)n = 4時,1 + 2 = 3

當(dāng)n = 5時,1 + 2 = 3

遞推可得公式ans = 1 + n / 2

#includeusing namespace std;
int main()
{
    int n;
    cin >>n;
    cout<< 1 + n / 2<< endl;
    return 0;
}
字符判斷

if - else分支結(jié)構(gòu)

#includeusing namespace std;
int main()
{
    char c;
    cin >>c;
    if(c >= '0' && c<= '9')cout<< "Number"<< endl;
    else if(c >= 'A' && c<= 'Z')cout<< "Capital letter"<< endl;
    else if(c >= 'a' && c<= 'z')cout<< "Lowercase letter"<< endl;
    else if(c == '+' || c == '-' || c == '*' || c == '/')cout<< "Arithmetic operators"<< endl;
    else if(c == '=' || c == '>' || c == '<')cout<< "Relational operators"<< endl;
    else if(c == '!' || c == '&' || c == '|' || c == '^')cout<< "Logical operators"<< endl;
    else cout<< "Other character"<< endl;
    return 0;
}
單位矩陣

高等數(shù)學(xué)-線性代數(shù)之中的概念,于編程之中可以理解為只有主對角線元素為1,其余元素均為0的二維矩陣

#includeusing namespace std;
int a[10][10];
int main()
{
    for(int i = 1;i<= 3;i ++ )
    {
        for(int j = 1;j<= 3;j ++ )
        {
            cin >>a[i][j];
            if(i == j)
            {
                if(a[i][j] == 1)continue;
                else 
                {
                    cout<< "NO";
                    return 0;
                }
            }
            else if(a[i][j] != 0)
            {
                cout<< "NO";
                return 0;
            }
        }
    }
    cout<< "YES";
    return 0;
}
閏年

閏年有兩種情況

  1. 能被4整除且不能被100整除

  1. 能被400整除

#includeusing namespace std;
bool judge(int n)
{
    if((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0))return true;
    else return false;
}
int main()
{
    int n;
    cin >>n;
    if(judge(n))cout<< "Y";
    else cout<< "N";
    return 0;
}
時間也能加

只考慮題目要求,首先秒滿60進(jìn)1,其次分鐘滿60再進(jìn)1

#includeusing namespace std;
int main()
{
    int h1,m1,s1,h2,m2,s2;
    cin >>h1 >>m1 >>s1 >>h2 >>m2 >>s2;
    int h = h1 + h2;
    int m = m1 + m2;
    int s = s1 + s2;
    if(s >= 60)
    {
        m ++ ;
        s -= 60;
    }
    if(m >= 60)
    {
        h ++ ;
        m -= 60;
    }
    cout<< h<< " "<< m<< " "<< s;
    return 0;
}
非常大的N

#include庫中的sqrt函數(shù)

sqrt(a,b)獲取a的b次方

開方使b = 0.5即可,即a的0.5次方,a的開方

#include#includeusing namespace std;
int main()
{
    double ans = 0;
    int n,flag = 1;
    cin >>n;
    for(int i = 1;i<= n;i ++ )
    {
        ans += sqrt(i) * flag;
        flag = -flag;
    }
    printf("%.6lf",ans); 
    return 0;
}
三角形坐標(biāo)

根據(jù)公式輸出計算即可,注意c ++ 向下取整以及double類型整數(shù)除整數(shù)仍得整數(shù)的情況,為整數(shù)添加.0后綴

#include#includeusing namespace std;
int main()
{
    int x1,y1,x2,y2,x3,y3;
    cin >>x1 >>y1 >>x2 >>y2 >>x3 >>y3;
    double S = 0.5 * abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2);
    printf("%.2lf",S);
    return 0;
}
向下取整

還是#include

sqrt函數(shù)(移步至《非常大的N》)和floor函數(shù)

floor(a);為對a的向下取整

eg:

floor(3.999999) = 3;

#include#includeusing namespace std;
int main()
{
    double n;
    cin >>n;
    int ans = floor(pow(n,1.0 / 3));
    printf("%3d",ans);
    return 0;
}
時刻求和

對12取余即可

#includeusing namespace std;
int main()
{
    int a,b;
    cin >>a >>b;
    printf("%3d",(a + b) % 12);
    return 0;
}
點與線段的關(guān)系

首先題目當(dāng)中包含無關(guān)的字符,要抑制這些字符的讀入只讀數(shù)字

int x1,y1,x2,y2,x3,y3;
scanf("(%d,%d) (%d,%d)\n",&x1,&y1,&x2,&y2);
scanf("(%d,%d)",&x3,&y3);

其次判斷點是否在線段上

  1. 三點共線公式

(x2-x1) * (y3-y1) - (x3-x1) * (y2-y1) == 0
  1. 只有點位于線段上才算正確,因此點3到點1的距離與點3到點2的距離是嚴(yán)格小于等于點1到點2距離的

  1. 計算兩點之間的距離

int dis(int x1,int y1,int x2,int y2)
{
    int s = pow((x1 - x2),2) + pow((y1 - y2),2);
    return s;
}

綜上所述

#include#includeusing namespace std;
int dis(int x1,int y1,int x2,int y2)
{
    int s = pow((x1 - x2),2) + pow((y1 - y2),2);
    return s;
}
int main()
{
    int x1,y1,x2,y2,x3,y3;
    scanf("(%d,%d) (%d,%d)\n",&x1,&y1,&x2,&y2);
    scanf("(%d,%d)",&x3,&y3);
    if((x2-x1) * (y3-y1) - (x3-x1) * (y2-y1) == 0 && dis(x1,y1,x2,y2) >= dis(x1,y1,x3,y3) && dis(x1,y1,x2,y2) >= dis(x2,y2,x3,y3))cout<< "YES";
    else cout<< "NO";
    return 0;
}
卡羅爾數(shù)

化簡4 * n - 2 * (n + 1) - 1 = 2 * n - 3 = N<--->n = (N + 3) / 2

在這里使用一個類型轉(zhuǎn)換的方式

double n;根據(jù)輸入的N求出n的值,題目要求n必須為正整數(shù),因此浮點數(shù)n的小數(shù)位不能有數(shù)字double flag = n - int(n);來獲取標(biāo)志

eg:

輸入N = 1,n = 4 / 2.0 = 2.0;int(n) = 2;double flag = 2.0 - 2 = 0

輸入N = 2,n = 5 / 2.0 = 2.5;int(n) = 2;double flag = 2.5 - 2 = 0.5

因此,若是flag為0,則n為正整數(shù),輸出YES,否則輸出NO

#includeusing namespace std;
int main()
{
    int N;
    cin >>N;
    double n = (N + 3) / 2.0;
    double flag = n - int(n);
    if(flag == 0)cout<< "YES"<< endl;
    else cout<< "NO"<< endl;
    return 0;
}
整除的總數(shù)

if語句

#includeusing namespace std;
int main()
{
    int n,m,k,ans = 0;
    cin >>n >>m >>k;
    for(int i = n;i<= m;i ++ )
    {
        if(i % k == 0)ans ++ ;
    }
    cout<< ans<< endl;
    return 0;
}
尾數(shù)為零

循環(huán),if語句

#includeusing namespace std;
typedef long long ll;
ll fun(ll n)
{
    ll ans = 1;
    for(ll i = 1;i<= n;i ++ )ans *= i;
    return ans;
}
int main()
{
    ll n,ans = 0;
    cin >>n;
    for(ll i = 1;i<= n;i ++ )
    {
        int num = fun(i);
        if(num % 10 == 0)ans ++ ;
    }    
    cout<< ans<< endl;
    return 0;
}
數(shù)組的大公約數(shù)

移步參考《大公約數(shù)》

#includeusing namespace std;
const int N = 100000 + 10;
int a[N];
int gcd(int a,int b)
{
    if(a % b == 0)return b;
    else return gcd(b,a % b); 
}
int main()
{
    int n;
    cin >>n;
    for(int i = 1;i<= n;i ++ )cin >>a[i];
    int ans = gcd(a[1],a[2]);
    for(int i = 3;i<= n;i ++ )ans = gcd(ans,a[i]);
    cout<< ans<< endl;
    return 0;
}
古人的剩余定理

if、循環(huán)

#includeusing namespace std;
int main()
{
    for(int i = 1;;i ++ )
    {
        if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2)
        {
            cout<< i<< endl;
            break;
        }
    }
    return 0;
}
四邊形坐標(biāo)

公式計算

#includeusing namespace std;
double traS(int x1,int y1,int x2,int y2,int x3,int y3)
{
    double S = 0.5 * abs(x1 * y2 - x1 * y3 + x2 * y3 - x2 * y1 + x3 * y1 - x3 * y2);
    return S;
}
int main()
{
    int x1,y1,x2,y2,x3,y3,x4,y4;
    cin >>x1 >>y1 >>x2 >>y2 >>x3 >>y3 >>x4 >>y4;
    double ans = traS(x1,y1,x2,y2,x3,y3) + traS(x2,y2,x3,y3,x4,y4) + traS(x1,y1,x2,y2,x4,y4) + traS(x1,y1,x3,y3,x4,y4);
    printf("%.2lf",ans / 2.0);
    return 0;
}
空間三角形

海倫公式,兩點之間的距離公式

#include#includeusing namespace std;
double dis(double x1,double y1,double z1,double x2,double y2,double z2)
{
    double s = sqrt(pow(x1 - x2,2) + pow(y1 - y2,2) + pow(z1 - z2,2));
    return s; 
}
int main()
{
    double x1,y1,z1,x2,y2,z2,x3,y3,z3;
    cin >>x1 >>y1 >>z1 >>x2 >>y2 >>z2 >>x3 >>y3 >>z3;
    double a = dis(x1,y1,z1,x2,y2,z2);
    double b = dis(x1,y1,z1,x3,y3,z3);
    double c = dis(x2,y2,z2,x3,y3,z3);
    double p = (a + b + c) / 2;
    double s = sqrt(p * (p - a) * (p - b) * (p - c));
    printf("%.2lf",s);
    return 0;
}
四葉玫瑰數(shù)

if語句

#include#includeusing namespace std;
bool judge(int n)
{
    int t = n;
    int ans = 0;
    while(t >0)
    {
        int num = t % 10;
        ans += pow(num,4);
        t /= 10; 
    }
    if(ans == n)return true;
    else return false;
}
int main()
{
    int n;
    cin >>n;
    if(n == 1634 || n == 8208 || n == 9474)cout<< "YES";
    else cout<< "NO";
    return 0;
}
完美數(shù)字

if語句

#include#includeusing namespace std;
int fun(int n)
{
    int mul = 1;
    for(int i = 1;i<= n;i ++ )mul *= i;
    return mul;
}
bool judge(int n)
{
    int t = n,ans = 0;
    while(t >0)
    {
        int num = t % 10;
        ans += fun(num);
        t /= 10;
    }
    if(ans == n)return true;
    else return false;
}
int main()
{
    int n;
    cin >>n;
    if(judge(n))cout<< "YES";
    else cout<< "NO";
    return 0;
}
指定集合

if、循環(huán)

#includeusing namespace std;
const int N = 1000000 + 10;
int a[N];
int main()
{
    int n,flag = 0;
    cin >>n;
    for(int i = 1;i<= n;i ++ )
    {
        cin >>a[i];
        if(a[i] == 4 || a[i] == 5 || a[i] == 6)
        {
            flag = 1;
            cout<< a[i]<< ' ';
        }
    }
    if(flag == 0)cout<< -1;
    return 0;
}
階乘數(shù)

循環(huán),if

#include#includeusing namespace std;
int fun(int n)
{
    int mul = 1;
    for(int i = 1;i<= n;i ++ )mul *= i;
    return mul;
}
int main()
{
    int n;
    cin >>n;
    for(int i = 1;i<= 14;i ++ )
    {
        int num = fun(i);
        if(num == n)
        {
            cout<< "YES";
            return 0;
        }
        else if(num< n)continue;
        else break;
    }
    cout<< "NO";
    return 0;
}
真因子

if、循環(huán)

#includeusing namespace std;
int main()
{
    int n;
    cin >>n;
    int ans = 0;
    for(int i = 1;i< n;i ++ )
    {
        if(n % i == 0)ans += i;
    }
    cout<< ans<< endl;
    return 0;
}
平方根X

參考《非常大的N》中sqrt的函數(shù)用法與《向下取整》中floor函數(shù)的用法

#include#includeusing namespace std;
int main()
{
    int n;
    cin >>n;
    double num = sqrt(n);
    if(num * num == n)cout<< int(num);
    else cout<< int(floor(num));
    return 0;
}
全部整除

循環(huán)、選擇

#includeusing namespace std;
int gcd(int a,int b)
{
    if(a % b == 0)return b;
    else return gcd(b,a % b);
}
int lcd(int a,int b)
{
    return (a * b) / (gcd(a,b));
}
int main()
{
    int n;
    cin >>n;
    int ans = 0;
    if(n == 1)
    {
        cout<< 1;
        return 0;
    }
    else 
    {
        ans = lcd(1,2);
        for(int i = 3;i<= n;i ++ )ans = lcd(ans,i);
    }
    cout<< ans<< endl;
    return 0;
}

快來一起加入百度松果菁英班,一起學(xué)習(xí)算法與飛槳吧?。?!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站欄目:百度松果菁英班“天天向上”擂臺賽第一期題解-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/cogssj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部