• 常见问题敲一敲


    过了几天不用看书,不用练口语,而没有罪恶感的生活。觉得真是惬意!!!期待我练好口语,打码时能够长久享受这种幸福吧。

    今天顺顺利利敲了两个题,还是比较开心的。(思维真的是需要锻炼出来的,很多不知道的小技巧避免不了熟悉的过程)

    //求N边形的面积(包括凹边形)//

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    using namespace std;
    const int maxn=100;

    struct point
    {
    int x;
    int y;
    } ss[maxn];
    int main ()
    {
    int n,i;
    double s;
    while(cin>>n)
    {
    s=0;
    if(n<3) continue;

    for(i=0; i<n; i++)
    {
    cin>>ss[i].x;
    cin>>ss[i].y;
    }
    for(i=0; i<n; i++)
    s+=ss[i].x*ss[i+1].y-ss[i+1].x*ss[i].y;
    s=s+ss[n-1].x*ss[0].y-ss[0].x*ss[n-1].y;
    // cout<<s<<endl;
    s=fabs(s/2);
    cout<<s<<endl;
    }
    return 0;
    }

    //任意进制的转化//(C做的)

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    using namespace std;
    const int maxn=100000;
    char ss1[maxn],NUM[maxn];
    int ss2[maxn],num[maxn];//输入的整形ss1-->字符ss2-->转化的整形num-->字符NUM
    int main ()
    {
    int i,j,n,n1,n2;
    while(cin>>n1>>ss1>>n2)//输入n1进制的ss1要求转化为n2进制

    {
    n=0;
    for(i=0; i<strlen(ss1); i++)
    {
    if(ss1[i]>='A') ss2[i]=ss1[i]-55;
    if(ss1[i]<='9') ss2[i]=ss1[i]-'0';
    }
    for(i=0;i<strlen(ss1);i++)
    n=n*n1+ss2[i];
    if(n2==10)//想想他为神马特殊?
    { cout<<n<<endl;
    continue;
    }
    j=0;
    do{
    j++;
    num[j]=n%n2;
    n=n/n2;
    }
    while(n!=0);
    for(i=0; i<=j; i++)
    {
    if(num[i]>=10) NUM[i]=num[i]+55;
    if(num[i]<=9) NUM[i]=num[i]+'0';
    }
    for(int k=j;k>0;k--)
    cout<<NUM[k];
    cout<<endl;
    }


    return 0;
    }

  • 相关阅读:
    泛型简介
    单元测试(junit使用)
    枚举简介
    面试题:二叉树的镜像
    面试题:和为S的连续正数列
    面试题:丑数
    面试题:合并两个排序的链表
    面试题:数值的整数次方
    面试题:矩形覆盖
    面试题:数组中的逆序对
  • 原文地址:https://www.cnblogs.com/sxy-798013203/p/5185979.html
Copyright © 2020-2023  润新知