楼主: yunqingwang
1376 4

[原创博文] 很久之前的一道题,今天没事弄出来 [推广有奖]

  • 0关注
  • 6粉丝

已卖:281份资源

博士生

72%

还不是VIP/贵宾

-

威望
0
论坛币
105 个
通用积分
31.0123
学术水平
9 点
热心指数
10 点
信用等级
7 点
经验
342 点
帖子
251
精华
0
在线时间
378 小时
注册时间
2009-11-22
最后登录
2020-7-29
毕业学校
南京农业大学

楼主
yunqingwang 在职认证  发表于 2011-9-23 22:49:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一列队编号从1至50,取出编号是奇数的,从新排队,继续取出奇数号,直至最后留一位,请问最后一位的编号是多少?公布了用IML实现的结果,看看DATA步怎么实现?
%let xx=50;
proc iml;
x=j(1,&xx,0);
do i =1 to &xx;
x[1,i]=i;
end;
z=ncol(x);
do while (z>=2);
x=x[1,2*(1:int(z/2))];
z=ncol(x);
end;
print x;
quit;
/*上面是过程,下面是计算公式*/
y=2**(int(log10(&XX)/log10(2)));
print y;
二维码

扫码加我 拉你入群

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

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

关键词:print while data步 Data quit

沙发
qunhqq239 发表于 2011-9-23 23:08:57
学习学习,谢谢楼主!

藤椅
zhangzachary 发表于 2011-9-23 23:19:44
6由50对数底数2求出,不过求num步有些问题,其他都ok
  1. data a;
  2. do while (x<50);
  3. x+1;
  4. output;
  5. end;
  6. run;

  7. %macro aa(donnee,num);

  8. %do i=1 %to %eval(&num);
  9. data &donnee;
  10. set &donnee;
  11. if mod(_n_,2)=1;
  12. run;
  13. %end;

  14. %mend aa;

  15. /*%let num=%sysevalf(int(log(50)/log(2))+1);*/

  16. %aa(a,6)
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

板凳
jingju11 发表于 2011-9-24 02:02:37
凑个数:
  1. 不凑了
复制代码
京剧

报纸
jingju11 发表于 2011-9-24 03:26:04
其实这个题目也没有意思了。直接用那个公式算不就行了。2往下乘一直到50之前的那个最大的乘积。京剧
  1.    
  2. run;
复制代码

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

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