2020年5月22日 星期五

week13

今日上課內容:

1. 函數反序排列數字

1-1 剝皮法
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n>0) ////還有剩下n
{
int a=n%10;///剝皮
n /= 10;///剩下的
printf("%d",a);

}
printf("\n");
}

1-2吹氣球(組合數字)

#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int ans=0;
while(n>0)  ///還剩下n
{
int a=n%10; ///剝皮
n /= 10;

ans*=10; ///吹氣放大
ans+=a; ///有空洞,塞答案進去

}
printf("%d\n",ans);
}
2. 2進位轉10進位


#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int n1= n%10;
int n2= (n/10)%10;
int n3= (n/100)%10;
int n4= (n/1000)%10;
int ans=n1*1+n2*2+n3*4+n4*8;

        ///2進位,每位數差2倍

printf("%d\n",ans);
}
3.CPE題目:uva.1583





技巧:
(1)從題目找出INPUT/OUTPUT解釋 ----->找generator
(2)找出之間的關係/答案
(3)甚麼是generator? 245+2+4+5=256
(4)generator把小的i變成大的
(5)用函式來簡化程式
#include <stdio.h>
int genBig(int n)
{
    int ans=n;
    while(n>0)
    {
        ans += n%10; ///剝皮法
        n/=10;///剩的越來越少
    }
    return ans;
}
int main()
{
    int T; ///測試資料有幾筆
    scanf("%d", &T);
    for(int t=0; t<T; t++)
    {
        int N;
        scanf("%d",&N);
        int ans=0;
        for(int i=1; i<=N; i++)
        {
            if(genBig(i)== N)
            {
                ans=i;
                break;
            }
        }
        printf("%d\n", ans);
    }
}

4.ANGRYBIRD
PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png");
  imageMode(CENTER);
}
void draw

沒有留言:

張貼留言