函數反序排列數字
程式碼:
#include <stdio.h>
int main( )
{
int n;
scanf("%d",&n);
int ans=0;
while(n>0)
{
int now=n%10; //用now存取末位數
n/=10;
ans*=10;
ans+=now;
}
printf("%d\n",ans);
}
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; //將4位數分開分別乘上2進制倍數
printf("%d\n",ans);
}
CPE練習題(1☆)
題目:
程式碼:
#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",ans);
}
}
憤怒鳥(彈射)
程式碼:
PImage imgBird;
void setup( )
{
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER); //中心點為座標
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false; //設一個變數是否成立
void draw( )
{
background(255); //背景解決殘影
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(mouseX,mouseY,oldX,oldY); //如果點到且拉動,畫條直線
birdX+=vx; birdY+=vy; //速度隨拉直線的長度增加
if(birdX>500-50 || birdX<50) vx=-vx;
if(birdY>400-50 || birdY<50) vy=-vy; //碰牆反彈
}
void mouseReleased( )
{
bMoving=false; //不再拉動和移動,彈射出去
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
void mousePressed( )
{
if(dist(mouseX,mouseY,birdX,birdY)<50) //距離夠近
{
bMoving=true; //移動憤怒鳥
oldX=birdX; oldY=birdY; //拉線用
}
}
void mouseDragged( )
{
if(bMoving)
{
birdX=mouseX; //如果點到,開始移動憤怒鳥
birdY=mouseY;
}
}
沒有留言:
張貼留言