楼主: 南方de梦
1588 1

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

  • 4关注
  • 3粉丝

已卖:234份资源

本科生

80%

还不是VIP/贵宾

-

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

楼主
南方de梦 发表于 2015-3-9 17:21:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

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

  1. %MACRO TRIANGLE(LINENo);
  2.     %do i=1 %to &lineno;
  3.         %let str=;
  4.         %do j=1 %to &i;
  5.             %if &j=1 or &j=&i %then  
  6.                 %let x&i.y&j=1;
  7.             %else
  8.                 %do;
  9.                 %let upline=%eval(&i-1);
  10.                 %let up1=%eval(&j-1);
  11.                 %let x&i.y&j=%eval(&&x&upline.y&up1+&&x&upline.y&j);
  12.                 %end;
  13.             %let str=&str%qsysfunc(repeat(%str( ),%eval(5-%length(&&x&i.y&j))))&&x&i.y&j;
  14.         %end;
  15.         %let str=%qsysfunc(repeat(%str( ),%eval((&lineNo-&j+1)*3)))%str(&str);
  16.         %put %str(&str);
  17.     %end;
  18. %MEND;
  19. %TRIANGLE(15);
复制代码




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



  9. %macro complete(N);
  10.         %local one;
  11.         %do  one=1 %to &n;
  12.         %if &one=%divisor(&one) %then %put one=&one %divisor(&one,print=1);
  13.         %end;

  14. %mend;

  15. %complete(1000);
复制代码



纯宏程序打印相亲数(Amicable

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

  9. %macro love(N);
  10.         %local one anotherone;
  11.         %do  one=1 %to &n;
  12.         %let anotherOne=%divisor(&one);
  13.         %if   %divisor(&anotherOne)=&one and &one ne &anotherOne  %then %put one=&one %divisor(&one,print=1) anotherone=&anotherone %divisor(&Anotherone,print=1);
  14.         %end;
  15. %mend;
  16. data _null_;
  17.         call symput('ahuigefromtime',put(time(),time8.));
  18. run;

  19. %love(1500);

  20. data _null_;
  21.         diff=time()-input("&ahuigefromtime",time8.);
  22.         put '################ time used :' diff time8.;
  23. run;
复制代码





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


二维码

扫码加我 拉你入群

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

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

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

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 60 + 60 + 2 + 3 + 1 精彩帖子

总评分: 经验 + 60  论坛币 + 60  学术水平 + 2  热心指数 + 3  信用等级 + 1   查看全部评分

本帖被以下文库推荐

沙发
niuniuyiwan 在职认证  发表于 2015-8-13 19:46:48
感谢分享

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-6 09:18