楼主: 南方de梦
2011 9

[程序分享] 纯SAS宏程序打印杨辉三角,完全数,相亲数 [推广有奖]

  • 4关注
  • 3粉丝

已卖:234份资源

本科生

80%

还不是VIP/贵宾

-

威望
0
论坛币
1467 个
通用积分
0.7200
学术水平
13 点
热心指数
11 点
信用等级
8 点
经验
653 点
帖子
161
精华
0
在线时间
46 小时
注册时间
2013-3-18
最后登录
2014-9-11

楼主
南方de梦 发表于 2013-8-12 08:28:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
打印杨辉三角(Pascal's triangle),

%MACRO TRIANGLE(LINENo);
    %do i=1 %to &lineno;
        %let str=;
        %do j=1 %to &i;
            %if &j=1 or &j=&i %then  
                %let x&i.y&j=1;
            %else
                %do;
                %let upline=%eval(&i-1);
                %let up1=%eval(&j-1);
                %let x&i.y&j=%eval(&&x&upline.y&up1+&&x&upline.y&j);
                %end;
            %let str=&str%qsysfunc(repeat(%str( ),%eval(5-%length(&&x&i.y&j))))&&x&i.y&j;
        %end;
        %let str=%qsysfunc(repeat(%str( ),%eval((&lineNo-&j+1)*3)))%str(&str);
        %put %str(&str);
    %end;
%MEND;
%TRIANGLE(15);


纯宏程序打印完全数、完美数(Perfect number)
%macro divisor(Num,print=0);
        %local allDivisor ;
        %do Divisor=1 %to %eval(&Num/2+1);
        %if  %sysfunc(mod(&Num,&divisor))=0 %then %let allDivisor=&alldivisor+&divisor;
        %end;
        %if &print %then %put  &allDivisor;
        %eval(0&allDivisor)
%mend;



%macro complete(N);
        %local one;
        %do  one=1 %to &n;
        %if &one=%divisor(&one) %then %put one=&one %divisor(&one,print=1);
        %end;

%mend;

%complete(1000);



纯宏程序打印相亲数(Amicable)

%macro divisor(Num,print=0);
        %local allDivisor ;
        %do Divisor=1 %to %eval(&Num/2+1);
        %if  %sysfunc(mod(&Num,&divisor))=0 %then %let allDivisor=&alldivisor+&divisor;
        %end;
        %if &print %then %put  &allDivisor;
        %eval(0&allDivisor)
%mend;

%macro love(N);
        %local one anotherone;
        %do  one=1 %to &n;
        %let anotherOne=%divisor(&one);
        %if   %divisor(&anotherOne)=&one and &one ne &anotherOne  %then %put one=&one %divisor(&one,print=1) anotherone=&anotherone %divisor(&Anotherone,print=1);
        %end;
%mend;
data _null_;
        call symput('ahuigefromtime',put(time(),time8.));
run;

%love(1500);

data _null_;
        diff=time()-input("&ahuigefromtime",time8.);
        put '################ time used :' diff time8.;
run;



》》》》》》》》》》》》》》》》》》》》》》》》
ahuige


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SAS宏程序 杨辉三角 SAS宏 完全数 宏程序 杨辉三角 程序

已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
小宝爱波1314 + 1 + 1 + 1 精彩帖子
Imasasor + 60 + 20 + 4 鼓励积极发帖讨论
crackman + 20 鼓励积极发帖讨论
webgu + 60 + 60 + 3 + 3 + 3 精彩帖子

总评分: 经验 + 140  论坛币 + 80  学术水平 + 8  热心指数 + 4  信用等级 + 4   查看全部评分

沙发
美髯客 发表于 2013-8-12 11:18:51
赞一个!

藤椅
小宝爱波1314 发表于 2013-8-12 11:31:13
赞一个,学术水平

板凳
南方de梦 发表于 2013-8-12 11:45:06
小宝爱波1314 发表于 2013-8-12 11:31
赞一个,学术水平
借花献佛啊,哈哈

报纸
Eternal0601 发表于 2013-8-12 18:31:56
看到程序中的ahuige了

地板
webgu 发表于 2013-8-12 20:09:03
Eternal0601 发表于 2013-8-12 18:31
看到程序中的ahuige了
好像是位SAS前辈。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

7
南方de梦 发表于 2013-8-12 21:14:50
webgu 发表于 2013-8-12 20:09
好像是位SAS前辈。
没错

8
fossilweng 发表于 2013-8-12 23:17:09
wow! 前辈

9
小宝爱波1314 发表于 2013-8-13 18:21:46
前辈

10
南方de梦 发表于 2013-9-9 21:58:25
小宝爱波1314 发表于 2013-8-13 18:21
前辈
你已经是博士了啊,韦博。。。Fuber说,韦博国际英语,哈哈哈

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 16:17