找回密码
 新注册用户
搜索
查看: 4779|回复: 5

[求助] 那个装了ubuntu的进……

[复制链接]
发表于 2008-8-16 22:47:36 | 显示全部楼层 |阅读模式
rt……
是不是有个“p2c”的软件的?
有的话帮忙转换这么个东西:




var m,n,i:integer;
s:longint;
function aa(k,m:integer):longint;
var i,t1,kz:integer;
temp:longint;
begin
if (k>m) or (k=1)and(m>1) or (k=0)and(m>0) then
begin aa:=0; exit end;
if k=m then begin aa:=1; exit end;
temp:=0; {处理 k<m的情形}
t1:=m-k; kz:=k-1;
if kz>m-k then kz:=m-k;
for i:=1 to kz do temp:=temp+aa(i,t1);
aa:=temp;
end;
begin
writeln('输入最大整数:'); readln(n);
writeln('输入定和数:'); readln(m);
s:=0;
for i:=1 to n do s:=s+aa(i,m);
writeln('计算结果:',s);
end 2:由键盘输入N, A={1,2,...,N}为连续N个整数的集合, 取A中若干不同的整数, 使这些整数之和为给定的M, 共有多少种不同的取法?
回复

使用道具 举报

发表于 2008-8-18 00:32:54 | 显示全部楼层
下次我去看看
回复

使用道具 举报

发表于 2008-8-18 11:59:10 | 显示全部楼层
#include <stdio.h>

long long aa(int k, int m){
  int i, t1, kz;
  long long temp;
  if((k>m)||((k==1)&&(m>1))||((k==0)&&(m>0))) return 0;
  if(k==m) return 1;
  temp=0;
  t1=m-k;
  kz=k-1;
  if(kz>t1) kz=t1;
  for(i=1;i<=kz;i++) temp+=aa(i,t1);
  return temp;
}

int main(){
  int m, n;
  long long s;
  printf("输入最大整数:\n");
  scanf("%d", &n);
  printf("输入定和数:\n");
  scanf("%d", &m);
  s=0;
  for(i=1;i<=n;i++) s+=aa(i,m);
  printf("计算结果:%lld\n", s);
  return 0;
}

手工翻译~~~不保证正确性~~~但是估计也差不多~~~
回复

使用道具 举报

 楼主| 发表于 2008-8-18 14:02:59 | 显示全部楼层
呃……
c 果然比 cpp 恶心太多了……
回复

使用道具 举报

发表于 2008-8-18 14:14:18 | 显示全部楼层

回复 #4 老冬腌菜 的帖子

差不多吧~~~这个东西估计在c和c++里边都可以编译成功的~~~
话说我还是不喜欢c++的对象~~~从来没有用过~~~就连cin和cout也一并厌恶~~~
回复

使用道具 举报

 楼主| 发表于 2008-8-18 17:34:08 | 显示全部楼层
原帖由 fwjmath 于 2008-8-18 14:14 发表
差不多吧~~~这个东西估计在c和c++里边都可以编译成功的~~~
话说我还是不喜欢c++的对象~~~从来没有用过~~~就连cin和cout也一并厌恶~~~


我倒是很喜欢c++的stl……
vector + iterator 比 array + pointer 舒服多了,特别是有 .begin() .end()……
c++ 的 cout 看着也远比 printf 舒服……

这么多的 % 看着眼花……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2025-5-8 08:04

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表