zoukankan      html  css  js  c++  java
  • 基础数理逻辑之空心菱形

    空心菱形是算法入门的基础题目,做出这道题并没有什么难度,但是下面的代码是根据网上的一些讨巧的方法写出来的,思想值得借鉴。
    int
    _tmain(int argc, _TCHAR* argv[]) { int num; int fk = 0, mk = 0; scanf("%d",&num); //取得空格数和行数的关系,上半部分正着数是i,下半部分倒着数是n-i for (int i = 1; i <= num;i++) { //上半部分 if (i < (num + 1) / 2) { //前部空格数 fk = (num + 1) / 2 - i; //中部空格数 mk = 2*i - 3;//从第二行开始 } //下半部分 else { fk = i - (num + 1) / 2; mk = 2 * (num - i) - 1; } for (int m = 1; m <= fk; m++) printf(" "); printf("*"); for (int n = 1; n <= mk; n++) printf(" "); //不是第一行也不是最后一行,需要在每行末尾添加* if (i > 1 && i < num) { printf("*"); } printf(" "); } //你会发现,这种算法直接忽略了后面的空格部分,但是在显示上却没有区别。 system("pause"); return 0; }
  • 相关阅读:
    bzoj 4260REBXOR
    bzoj 1009GT考试
    cf 621E. Wet Shark and Blocks
    cf 507E. Breaking Good
    cf 766#
    bzoj 3732Network
    bzoj 4300绝世好题
    bzoj 4345[POI2016]Korale
    bzoj 4236JOIOJI
    bzoj 4237稻草人
  • 原文地址:https://www.cnblogs.com/baikequanshu/p/3370333.html
Copyright © 2011-2022 走看看