用Ruby和C实现的算法若干

算法1:
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字 的三位数?都是多少?
排列组合的问题
#Ruby代码
class Array 
    def perm(n) 
        if size < n or n < 0 
        elsif n == 0 
            yield([]) 
        else 
            self[1..-1].perm(n - 1) do |x| 
                (0...n).each do |i| 
                    yield(x[0...i] + [first] + x[i..-1]) 
                end 
            end 
            self[1..-1].perm(n) do |x| 
                yield(x) 
            end 
        end 
    end 
end 

quantity=0 
[1,2,3,4].perm(3) do |x| 
    quantity+=1 
    p x 
end 
p quantity
C
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干#define MAX 3 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干 int i,j,k; 
用Ruby和C实现的算法若干 int num=0; 
用Ruby和C实现的算法若干 int a[3]; 
用Ruby和C实现的算法若干 int newline=0; 
用Ruby和C实现的算法若干 i=1; 
用Ruby和C实现的算法若干 while(i<=MAX) 
用Ruby和C实现的算法若干 { 
用Ruby和C实现的算法若干     a[0]=i; 
用Ruby和C实现的算法若干     j=1; 
用Ruby和C实现的算法若干     while(j<=MAX) 
用Ruby和C实现的算法若干         { 
用Ruby和C实现的算法若干        if(j==i)     {j++; continue;} 
用Ruby和C实现的算法若干        a[1]=j; 
用Ruby和C实现的算法若干        k=1; 
用Ruby和C实现的算法若干        while(k<=MAX) 
用Ruby和C实现的算法若干         { 
用Ruby和C实现的算法若干         if(k==i) {k++;continue;} 
用Ruby和C实现的算法若干         if(k==j) {k++;continue;} 
用Ruby和C实现的算法若干            a[2]=k; 
用Ruby和C实现的算法若干            k++; 
用Ruby和C实现的算法若干            for(int temp=0;temp<3;temp++) 
用Ruby和C实现的算法若干        printf("%d",a[temp]); 
用Ruby和C实现的算法若干     printf("    "); 
用Ruby和C实现的算法若干            num++; 
用Ruby和C实现的算法若干            newline++; 
用Ruby和C实现的算法若干            if(newline%10==0) 
用Ruby和C实现的算法若干                printf("\n"); 
用Ruby和C实现的算法若干         }//while k 
用Ruby和C实现的算法若干        j++; 
用Ruby和C实现的算法若干     }//while j 
用Ruby和C实现的算法若干             i++; 
用Ruby和C实现的算法若干        }//while i 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干 printf("\nTotal number is %d",num); 
用Ruby和C实现的算法若干 } 
题目2:
验证谷角猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1 。如此经过有限次运算后,总可以得到自然数 1 。人们把谷角静夫的这一发现叫做“谷角猜想”。 
编写一个程序,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然数 1 的全过程打印出来 
#Ruby代码:
def gu(n) 
    if n==0 
        print "Invalid number!" 
    end 
    while n!=1 
        if n%2==0 
            yield(n) 
            n=n/2 
        elsif n%2!=0 
            yield(n) 
            n=n*3+1 
        end 
    end 
    print n 
end 

puts "Input an Integer(except 0): " 

n=gets.chomp.to_i 
gu(n) {|x| print x, " "    } 
C
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int n; 
用Ruby和C实现的算法若干        int newline=0; 
用Ruby和C实现的算法若干loop1: 
用Ruby和C实现的算法若干  printf("Please input the natural number(>=1):"); 
用Ruby和C实现的算法若干  scanf("%d",&n); 
用Ruby和C实现的算法若干  if(n==0)    
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    printf("Invalid number\n"); 
用Ruby和C实现的算法若干    goto loop1; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  while(n!=1) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    if(n%2==0)    
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      n=n/2; 
用Ruby和C实现的算法若干      printf("%d    ",n); 
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干    else 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      n=n*3+1; 
用Ruby和C实现的算法若干      printf("%d ",n); 
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干    newline++; 
用Ruby和C实现的算法若干    if(newline%10==0) printf("\n"); 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  printf("\nThe total execute number is %d",newline); 
用Ruby和C实现的算法若干
题目3:
从键盘上输入某年某月某日,计算是这一年中的第几天
Ruby代码:
printf "Input a date: (format:2009.2.14)" 
time_arr=gets.chomp.split(".") 
time=Time.mktime(time_arr[0].to_i,time_arr[1].to_i,time_arr[2].to_i,) 
time.yday
C
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int year,month,day; 
用Ruby和C实现的算法若干  int    i; 
用Ruby和C实现的算法若干  int total=0; 
用Ruby和C实现的算法若干  int a[12]={31,0,31,30,31,30,31,31,30,31,30,31}; 
用Ruby和C实现的算法若干  printf("Please input the date of today:(yyyy,mm,dd)"); 
用Ruby和C实现的算法若干  scanf("%d,%d,%d",&year,&month,&day); 
用Ruby和C实现的算法若干  if( year%400 == 0) 
用Ruby和C实现的算法若干            a[1]=29; 
用Ruby和C实现的算法若干  else    
用Ruby和C实现的算法若干     a[1]=28; 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干        for(i=0;i<month-1;i++) 
用Ruby和C实现的算法若干    total+=a[i]; 
用Ruby和C实现的算法若干  total+=day; 
用Ruby和C实现的算法若干        
用Ruby和C实现的算法若干  printf("\nToday is number %d day in this year.",total);         
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干
 
题目4:
输入n,打印n阶楼梯,最上层楼梯有两个笑脸
 
Ruby代码:
def stairs(max) 
    f=max 
    while f!=0     
        yield f 
        f-=1 
    end 
end 

10.times {print "     "} 
print "\1    \1\n" 
stairs(10) do |f|    
    (f-1).times do    
        print "     " 
    end 
    print "_|" 
print "\n" 
end    
 
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int i,j; 
用Ruby和C实现的算法若干  printf("\1 \1\n"); 
用Ruby和C实现的算法若干  for(i=0;i<11;i++) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    for(j=1;j<=i;j++) 
用Ruby和C实现的算法若干      if(i==j) 
用Ruby和C实现的算法若干        printf("|_"); 
用Ruby和C实现的算法若干      else 
用Ruby和C实现的算法若干        printf(" "); 
用Ruby和C实现的算法若干         printf("\n"); 
用Ruby和C实现的算法若干  }             
用Ruby和C实现的算法若干
 
题目5:
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
Ruby代码:
用Ruby和C实现的算法若干x=17 
用Ruby和C实现的算法若干while x<1000 
用Ruby和C实现的算法若干    y=10 
用Ruby和C实现的算法若干    while y<1000 
用Ruby和C实现的算法若干        if (x+y)*(x-y)==168 
用Ruby和C实现的算法若干            puts    x*x-100 
用Ruby和C实现的算法若干            break 
用Ruby和C实现的算法若干        else 
用Ruby和C实现的算法若干            y+=1 
用Ruby和C实现的算法若干        end 
用Ruby和C实现的算法若干    end 
用Ruby和C实现的算法若干    x+=1 
用Ruby和C实现的算法若干end    
C
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干#include "math.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int x; 
用Ruby和C实现的算法若干  int m,n; 
用Ruby和C实现的算法若干    
用Ruby和C实现的算法若干  for(x=0;x<100;x++) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    m=sqrt(x+100); 
用Ruby和C实现的算法若干          n=sqrt(x+268); 
用Ruby和C实现的算法若干    if( (m*m==x+100) && (n*n==x+268) ) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      printf("%d",x); 
用Ruby和C实现的算法若干      break
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干}
题目6:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
##3个月大开始生兔子是fib序列。
Ruby代码1:
class Rabbit 
    @@count=0 
    attr_accessor :age 
    def initialize 
        @age=0 
        @@count+=1 
    end 

    def increment 
        @age+=1 
    end 

    def self.quantity 
        @@count 
    end 
end 

first_rabbit=Rabbit.new 
rabbits=Array.new 
rabbits<<first_rabit 
puts "Input the months:" 
n=gets.chomp.to_i 
n.times do |month| 
    puts "#{month} -- #{Rabbit.quantity*2} rabbits" 
    rabits.each do |rabbit| 
        rabbit.increment 
        if rabbit.age>=3 
            rabbits<<Rabit.new 
        end 
    end 
end 
ruby代码2:
def fib(month)
  f1,f2=2,2
  100.times do
    yield(f1)
    f1,f2=f1+f2,f1
  end
end

n=gets.chomp.to_i 
fib(n){|x| puts x}    
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干#include "math.h" 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int month; 
用Ruby和C实现的算法若干  //long int num=1;                            //the number of rabbits 
用Ruby和C实现的算法若干  int i;                                    //loop variable 
用Ruby和C实现的算法若干  int f1=1; 
用Ruby和C实现的算法若干  int f2=1; 
用Ruby和C实现的算法若干  printf("Which month would you want to konw how many rabbits ?"); 
用Ruby和C实现的算法若干  scanf("%d",&month); 
用Ruby和C实现的算法若干        printf("1----1 pair of rabbit\n"); 
用Ruby和C实现的算法若干  printf("2----1 pairs of rabbits\n"); 
用Ruby和C实现的算法若干        i=3; 
用Ruby和C实现的算法若干  while(i<=month) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干     
用Ruby和C实现的算法若干    f1=f1+f2; 
用Ruby和C实现的算法若干    printf("%d----%d pairs of rabbits\n",i,f1); 
用Ruby和C实现的算法若干    f2=f1+f2; 
用Ruby和C实现的算法若干    printf("%d----%d pairs of rabbits\n",++i,f2); 
用Ruby和C实现的算法若干    i++; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  //printf("\nThe %d month has %d number rabbits.\n",month,num);         
用Ruby和C实现的算法若干
题目7:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
Ruby代码:
def daffodil 
    for i in (1..9) 
        for j in (0..9) 
            for k in (0..9) 
                x=i*100+j*10+k 
                y=i**3+j**3+k**3 
                if x==y 
                    puts x 
                else 
                    k+=1 
                end 
            end 
        end 
    end 
end 
daffodil    
C代码:
#include "stdio.h" 
void main() 

     int hundreds=1;    
     int tens=1; 
     int units=1; 
     int i,num;    //loop variable 
     int temp_num; 
     for(i=111;i<=999;i++) 
     { 
        num=i; 
        units=num%10; 
        num=num/10; 
        tens=num%10; 
        num=num/10; 
        hundreds=num%10; 
        temp_num=hundreds*hundreds*hundreds+tens*tens*tens+units*units*units;         
        if(temp_num==i) 
         printf("%d    ",i);        

     } 

题目8:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
Ruby代码:
def sub(n) 
    a=Array.new 
    flag=1 
    while flag==1 
        for i in(2..n) 
            if n%i==0 
                a<<i 
                n=n/i 
                break 
            end 
            if i==n-1 and n%i!=0 
                flag=0 
            end 
        end 
    end 
    a 
end 
puts "Input a number:" 
n=gets.chomp.to_i 
puts "#{n}=#{sub(n).join('*')}"    
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int i=2; 
用Ruby和C实现的算法若干  int num; 
用Ruby和C实现的算法若干loop1: 
用Ruby和C实现的算法若干  printf("Please input your number which want to factorization:\n"); 
用Ruby和C实现的算法若干  scanf("%d",&num); 
用Ruby和C实现的算法若干  if(num==1) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    printf("1 cannot    Integer factorization \n"); 
用Ruby和C实现的算法若干    goto loop1; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  while(i<=num) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    if( num%i == 0 ) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      printf("%d",i);        
用Ruby和C实现的算法若干      if(num!=i) 
用Ruby和C实现的算法若干        printf("*"); 
用Ruby和C实现的算法若干      if(num==i) 
用Ruby和C实现的算法若干         break
用Ruby和C实现的算法若干      num=num/i; 
用Ruby和C实现的算法若干      i=2; 
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干    else 
用Ruby和C实现的算法若干      i++; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  printf("\n"); 
用Ruby和C实现的算法若干
题目9:
求两个数的最小公倍数和最大公因数
Ruby代码:
puts "Input two numbers( split with ","):" 
b=Array.new 
a=gets.chomp.split(',') 
a.each do |elem| 
    b<<elem.to_i 
end 
min_number=b.min 
max_number=b.max 

common_divisor=1 
common_multiple=min_number*max_number 
min_number.downto(1) do |i| 
    if min_number%i==0 and max_number%i==0 
        common_divisor=i 
        break 
    end 
end 

max_number.upto(max_number*min_number) do |i| 
    if i%min_number==0 and i%max_number==0 
        common_multiple=i 
        break 
    end 
end 
puts "The common divisor is #{common_divisor}" 

puts "The common multiple is #{common_multiple}"
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int num1,num2; 
用Ruby和C实现的算法若干  int temp_num; 
用Ruby和C实现的算法若干  printf("Please input num1,num2:"); 
用Ruby和C实现的算法若干  scanf("%d,%d",&num1,&num2); 
用Ruby和C实现的算法若干  if(num1>num2) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    temp_num=num1; 
用Ruby和C实现的算法若干    num1=num2; 
用Ruby和C实现的算法若干    num2=temp_num; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干    
用Ruby和C实现的算法若干        if(num2%num1==0) 
用Ruby和C实现的算法若干    printf("The greatest common divisor is %d\n",num1); 
用Ruby和C实现的算法若干  else 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干            for(int i=num1;i>=1;i--) 
用Ruby和C实现的算法若干        if( (num1%i==0) && (num2%i==0) ) 
用Ruby和C实现的算法若干        { 
用Ruby和C实现的算法若干         printf("The greatest common divisor is %d    \n",i); 
用Ruby和C实现的算法若干         break
用Ruby和C实现的算法若干        } 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干         
用Ruby和C实现的算法若干        
用Ruby和C实现的算法若干  if(num2%num1==0) 
用Ruby和C实现的算法若干    printf("The    least common multiple is %d\n",num2); 
用Ruby和C实现的算法若干  else 
用Ruby和C实现的算法若干    for(int j=num2;j<num1*num2;j++) 
用Ruby和C实现的算法若干      if( j%num1==0 && j%num2==0) 
用Ruby和C实现的算法若干      { 
用Ruby和C实现的算法若干        printf("The least common multiple is %d\n",j); 
用Ruby和C实现的算法若干        break
用Ruby和C实现的算法若干      } 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干
题目10:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
Ruby代码:
a=Array.new 
gets.chomp.split(",").each do |i| 
    a<<i.to_i 
end 
elem=[0] 
for n in (1..a[1]) do 
    elem[n]=elem[n-1]+a[0]*10**(n-1) 
    print elem[n],"+" 
end 
print "=#{elem.inject(0) { |sum,i| sum+=i}}"    
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干         
用Ruby和C实现的算法若干  int a; 
用Ruby和C实现的算法若干  int count; 
用Ruby和C实现的算法若干  int *temp; //有多少个数相加,就分配多大的内存 
用Ruby和C实现的算法若干  int i=1; 
用Ruby和C实现的算法若干        int j=0; 
用Ruby和C实现的算法若干  printf("Please input number a:"); 
用Ruby和C实现的算法若干  scanf("%d",&a); 
用Ruby和C实现的算法若干  printf("Please input the times:"); 
用Ruby和C实现的算法若干  scanf("%d",&count); 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干  temp=new int[count]; 
用Ruby和C实现的算法若干  temp[0]=a; 
用Ruby和C实现的算法若干     if(count==1) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干     printf("%d",a); 
用Ruby和C实现的算法若干     goto loop1; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  for( i=1;i<count;i++) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    temp[i]=temp[i-1]*10+a; 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干  a=0; 
用Ruby和C实现的算法若干         for(j=0;j<count;j++) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干     printf("%d",temp[j]); 
用Ruby和C实现的算法若干            if(j!=(count-1)) 
用Ruby和C实现的算法若干         printf("+"); 
用Ruby和C实现的算法若干        
用Ruby和C实现的算法若干                 a+=temp[j]; 
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干loop1: printf("=%d",a); 
用Ruby和C实现的算法若干
题目11:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
Ruby代码:
a=Array.new 
for i in (1..1000) 
    a[i]=[] 
    for j in (1..i/2) 
        if i%j==0 
            a[i]<<j 
        end 
    end 
    if i==a[i].inject(0){|sum,elem| sum+=elem} 
        puts i 
    end 
end
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干#include "math.h" 
用Ruby和C实现的算法若干#define MAX 1000 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int temp[MAX/2]; 
用Ruby和C实现的算法若干  int sum=0; 
用Ruby和C实现的算法若干  int k; 
用Ruby和C实现的算法若干  for(int m=0;m<MAX/2;m++) //初始化 
用Ruby和C实现的算法若干    temp[m]=0; 
用Ruby和C实现的算法若干  for(int i=2;i<MAX;i++) 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    k=0; 
用Ruby和C实现的算法若干    for(int j=1;j<=floor(i/2);j++) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      if(i%j==0) 
用Ruby和C实现的算法若干      { 
用Ruby和C实现的算法若干        temp[k]=j; 
用Ruby和C实现的算法若干                                sum+=j; 
用Ruby和C实现的算法若干        k++; 
用Ruby和C实现的算法若干      }//if 
用Ruby和C实现的算法若干        
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干     
用Ruby和C实现的算法若干    if(sum==i) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      printf("\n%d=",i); 
用Ruby和C实现的算法若干      for(k=0;k<MAX/2;k++) 
用Ruby和C实现的算法若干      {                
用Ruby和C实现的算法若干        printf("%d",temp[k]); 
用Ruby和C实现的算法若干        if(temp[k+1]==0) 
用Ruby和C实现的算法若干          break
用Ruby和C实现的算法若干        printf("+"); 
用Ruby和C实现的算法若干      }//for 
用Ruby和C实现的算法若干      sum=0; 
用Ruby和C实现的算法若干      for(int m=0;m<MAX/2;m++)    
用Ruby和C实现的算法若干                                temp[m]=0;    
用Ruby和C实现的算法若干    }//if 
用Ruby和C实现的算法若干    else    
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      sum=0;                         
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干  }//for 
用Ruby和C实现的算法若干}//main 
 
题目12:
输入高度,输出杨辉三角
def yang_triangle(n) 
    a=[] 
    for f in (0..n-1) 
        a[f]=[] 
        for n in (0..f+1) 
            a[f][0]=1 
            if f>1 
                for m in (1..n-2) 
                    a[f][m]=a[f-1][m-1]+a[f-1][m] 
                end 
            end 
            a[f][n-1]=1 
        end 
    end 
    a 
end 
puts "Input a number:" 
n=gets.chomp.to_i 
yang_triangle(n).each do |arr| 
    arr.each do |elem| 
        print elem, " " 
    end 
end
C代码:
用Ruby和C实现的算法若干#include "stdio.h" 
用Ruby和C实现的算法若干void main() 
用Ruby和C实现的算法若干
用Ruby和C实现的算法若干  int n; //杨辉三角的阶数 
用Ruby和C实现的算法若干  int **c;    //存储杨辉三角的二维数组 
用Ruby和C实现的算法若干  int i,j; //二层循环变量 
用Ruby和C实现的算法若干  int k; 
用Ruby和C实现的算法若干  printf("Please input the layer of yanghui:"); 
用Ruby和C实现的算法若干  scanf("%d",&n); 
用Ruby和C实现的算法若干  c=new int* [n];    //动态分配二维空间 
用Ruby和C实现的算法若干        for(k=0;k<n;k++) 
用Ruby和C实现的算法若干    c[k]=new int[n]; 
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干  for(k=0;k<n;k++)            
用Ruby和C实现的算法若干     { 
用Ruby和C实现的算法若干    c[k][0]=1; 
用Ruby和C实现的算法若干         c[k][k]=1; 
用Ruby和C实现的算法若干     } 
用Ruby和C实现的算法若干  for(i=2;i<n;i++) 
用Ruby和C实现的算法若干     for(j=1;j<i;j++) 
用Ruby和C实现的算法若干    c[i][j]=c[i-1][j-1]+c[i-1][j]; 
用Ruby和C实现的算法若干    
用Ruby和C实现的算法若干 
用Ruby和C实现的算法若干        for(i=0;i<n;i++)                 //输出结果 
用Ruby和C实现的算法若干  { 
用Ruby和C实现的算法若干    for(j=0;j<=i;j++) 
用Ruby和C实现的算法若干    { 
用Ruby和C实现的算法若干      printf("%d ",c[i][j]); 
用Ruby和C实现的算法若干    } 
用Ruby和C实现的算法若干    printf("\n"); 
用Ruby和C实现的算法若干  } 
用Ruby和C实现的算法若干




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/136773,如需转载请自行联系原作者
上一篇:jsonobject.fromobject方法转换中出现的问题


下一篇:python 回溯法 子集树模板 系列 —— 5、取物搭配问题