黑马程序员技术交流社区

标题: 打印图案和数学函数的关系(直接看代码,相当简洁哟) [打印本页]

作者: IT-capfer    时间: 2015-12-2 01:10
标题: 打印图案和数学函数的关系(直接看代码,相当简洁哟)
正三角
#include<stdio.h>
int main(){
    for (int a=0; a<5; a++) {
        for (int b=0; b<a+4; b++) {
            if (b<4-a){
                printf(" ");
            }else{
                printf("*");
            }
        }
        printf("\n");
    }
    return 0;
}
输出为:
        *
      ***
    *****
  *******
*********

空心正三角
#include<stdio.h>
int main(){
    for (int a=0; a<5; a++) {
        for (int b=0; b<a+5; b++) {
            if (b==4-a||b==4+a) {
                printf("*");
            }else if(a==4&&0==b%2){
                printf("*");
            }else{
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}
输出为:
        *
      *  *
    *      *
  *          *
*  *   *   *  *
倒三角
#include<stdio.h>
int main(){
    for (int a=0; a<5; a++) {
        for (int b=0; b<a+5; b++) {
            if (b==4-a||b==4+a) {
                printf("*");
            }else if(a==4&&0==b%2){
                printf("*");
            }else{
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}
输出为:
*********
  *******
    *****
      ***
       *
空心倒三角
#include<stdio.h>
int main(){
    for (int a=0; a<5; a++) {
        for (int b=0; b<9-a; b++) {
            if (0==a&&0==b%2) {
                printf("*");
            }else if(b==a||b==8-a){
                printf("*");
            }else{
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}

输出为:
*  *   *   *  *
  *          *
    *      *
      *  *
        *



作者: IT-capfer    时间: 2015-12-2 01:12
这是利用数学坐标(x.y)对应两个循环(a,b)的关系,轻松利用数学图像的函数表达式建立两个循环变量的关系的来的。
作者: 乔庆芳    时间: 2015-12-2 09:42
正常分享~~~
作者: cherrycool    时间: 2015-12-2 10:11
不错,学习学习
作者: IT-capfer    时间: 2015-12-3 00:10
cherrycool 发表于 2015-12-2 10:11
不错,学习学习

比如数学函数式:y=kx+b,直接换成两个for循环的变量就可以啦。
要是曲线,比如抛物线:y=k*x*x+b,则会有误差,毕竟我们打印的*坐标都得是正整数
作者: IT-capfer    时间: 2015-12-3 00:13
乔庆芳 发表于 2015-12-2 09:42
正常分享~~~

。。。。
作者: 乔庆芳    时间: 2015-12-3 09:39
IT-capfer 发表于 2015-12-3 00:13
。。。。

感谢分享,打错字了……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2