2020年4月30日 星期四

week10

程式設計二

瘋狂程設
1.進階題:反序數字 
程式:
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int n1=n;//備份,因為等一下n犧牲

int ans=0;
while(n>0){
       //剝皮法 1234=>123 4拿出來
ans *=10;//變10倍
int now=n%10;//取出4
n/=10;//剝皮(n犧牲了)
ans +=now;//加進去
}
int n2=ans;
printf("%d+%d=%d\n",n1,n2,n1+n2);

}

2.進階題:分式化簡

程式:
//最大公因數法...約分
//找到大家都可以消掉的數字
#include <stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);

int ans;
for(int i=1;i<=a;i++){
if(a%i==0 && b%i==0) ans=i;
               //可消除a,也可消除b
}

printf("%d %d\n",a/ans,b/ans);

}

3.UVA11150:加分題Cola 
程式:
#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)==1){
int ans=n;//喝到幾瓶
               //n個空瓶
while(n>=3){//只要還有3個空瓶
int more = n/3;
n=n%3;//剩下幾個空瓶
ans+=more;//多喝!
n+=more;//也多了空瓶
}
               //你現在手上就有兩個空瓶,
              //雖然不能直接換,但是,
             //你可以找人,去借個空瓶子,
            //先喝了他(Yes賺到!!!)得到1個空瓶,
           //再還人家
if(n==2) ans++;//賺到!!!
printf("%d\n",ans);
}

}


Processing
1.做出四個會慢慢變大的圓形
程式:

void setup(){
  size(300,500);
}
int r=0;
void draw(){
  background(0);
  ellipse(70,200+75,r,r);
  ellipse(70,200+75+150,r,r);
  ellipse(70+150,200+75,r,r);
  ellipse(70+150,200+75+150,r,r);
  if(r<145) r+=2;
  else r=0;
}

 
2-1.做出六個會慢慢變大的圓形
程式:
void setup(){
  size(300,500);
}
int r=0;
void draw(){
  background(0);
  ellipse(50,200+50,r,r);
  ellipse(50,200+50+100,r,r);
  ellipse(50,200+50+100+100,r,r);
  
  ellipse(50+100,200+50,r,r);
  ellipse(50+100,200+50+100,r,r);
  ellipse(50+100,200+50+100+100,r,r);
  
  ellipse(50+100+100,200+50,r,r);
  ellipse(50+100+100,200+50+100,r,r);
  ellipse(50+100+100,200+50+100+100,r,r);
  if(r<100) r+=2;
  else r=0;
}

2-2.用for迴圈做六個會慢慢變大的圓形
程式:
void setup(){
  size(300,500);
}
int r=0;
void draw(){
  background(0);
  for(int x=0;x<3;x++){
    for(int y=0;y<3;y++){
  ellipse(50+x*100,200+50+y*100,r,r);
    }
  }
  if(r<100) r+=2;
  else r=0;
}

沒有留言:

張貼留言