2019-06-08 YTUOJ 算法/查找

--------------------------------
Author : ShawnDong
updateDate :2019.6.8
Blog : ShawnDong98.github.io
--------------------------------

3332: 二分查找: 小C同学有n个苹果,每个苹果的甜度都不相同,他现在想要吃一个甜度为a的苹果,可他又不想一个个去找,聪明的你能帮他在最少次数(相对次数最少)内找出甜度为a的苹果吗。

int binarySearch(int a[], int n, int target){
    int mid,count = 0,left = 1, flag = 0;
    while(left <= n){
        count++;
        mid = left+ (n-left)/2;
        if (a[mid] == target) {
            cout << count;
            flag = 1;
            break;
        }
        else if (a[mid] > target) n = mid-1;
        else left = mid+1;
    }
    if(flag==0){
        cout<<"I can't find it.";
    }
}

int main(){
    int n;
    cin >> n;
    int a[n+1];
    for(int i = 1;i <= n;i ++)
        cin >> a[i];
    int target;
    cin>>target;
    binarySearch(a, n, target);
    return 0;
}

3345: 求对角线之和:输入一个3*3的数组,求其一条对角线(右上到左下)的和。如下图粗体所示:

int main(){
    int a[3][3];
    int sum = 0;
    for(int i=0; i<3; i++){
        for(int j=0; j<3; j++){
            cin >> a[i][j];
            if(2 - i == j){
                sum += a[i][j];
            }
        }
    }
    cout << sum;
    return 0;
}

3346: 判断闰年:输入一个年份,判断是否是闰年,若是,判断其为普通闰年还是世纪闰年。
普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年);
世纪闰年:能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年);
若是普通闰年,输出common leapyear;
若是世纪闰年,输出century leapyear;

若不是闰年,输出no leapyear;

int main(){
    int year;
    cin >> year;
    if(year % 4 == 0 && year % 100 != 0){
        cout << "common leapyear";
    }
    else if(year % 400 == 0){
        cout << "century leapyear";
    }
    else{
        cout << "no leapyear";
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.打印水仙花数:所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身 int a, b, c; for(...
    宠白者阅读 1,747评论 0 1
  • 小学奥数的知识点约 80个,总体上可以分为五大类。数论和行程问题是小 学奥数学习中的重点也是难点。 一、 计算能力...
    ADolphin阅读 8,156评论 1 3
  • 如果不注意,大概很多人认为“闰月”与“闰年”是一个意思,其实不是,虽说只是一字之差,所包含的意思却相差很远。 “闰...
    雨落未惊风阅读 8,584评论 1 2
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,415评论 0 2
  • 在outlook上添加账户 1、首先在outlook文件 --> 添加用户 2、 选择 电子邮件帐户 --> 下一...
    Toomi阅读 1,883评论 0 0