A. 求一道c語言ACM題
#include<ctype.h>
#include<stdio.h>
#include<math.h>
main()
{
int i,j,n;
char s;
clrscr();
printf("Please input Number:");
scanf("%d",&n);
printf("\n");
printf("Case #");
for (i=n-1;i>=-n+1;i--)
{
for(j=0;j<=abs(i);j++) printf(" ");
for (j=n-abs(i)-1;j>=-(n-abs(i))+1;j--)
printf("%c",toascii(abs(n-abs(j)-abs(i))+64));
printf("\n");
}
getch();
}
B. c語言 ACM題目
這樣的
1 1 過去1分鍾
1回來1分鍾
2 3過去3分鍾
1回來1分鍾
1 1過去1分鍾
加一起就是7分鍾
C. 一個C語言的ACM題目
代碼其實很簡單,需要你理解C語言里整型變數的內存結構,還有大小端問題。
#include<stdio.h>
intmain(void){
intx=1234;
for(inti=0;i<4;i++){
printf("%x ",x&0x000000ff);
x=x>>8;
}
getchar();
}
內存里1234是這樣的:
D. C語言2011年ACM大賽題目
2
1 1
2 2
最近點對的距離為:1.414
最短距離的兩個點為:
(1,1)
(2,2)
請按任意鍵繼續. . .
可以運行啊,你建立的是C++程序嗎?
E. 求教ACM題目,只要C語言的,急求,快!!!
#include<stdio.h>
#defineN100
intmain()
{
inti,j,t;
ints1,s2,s3;
intarr[N];
intn;
intsum;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&arr[i]);
if(n==1)
{
printf("1 ");
return0;
}
sum=0;
for(i=1;i<n;i++)//整體思路就是將1...n分成1..i、i...j和j...n三段,然後計算三段的和的最大值,
//其中第一部分1...i和第三部分j...n是直接計算原來數字的和,第二部分i..j由於是反轉,所以是計算1變00變1後的和
{
for(j=i+1;j<=n;j++)
{
s1=s2=s3=0;
for(t=1;t<i;t++)
s1+=arr[t];
for(t=i;t<=j;t++)
s2+=(arr[t]^1);
for(t=j+1;t<=n;t++)
s3+=arr[t];
if(sum<s1+s2+s3)
{
sum=s1+s2+s3;
}
}
}
printf("%d ",sum);
return0;
}
ps:由於是ACM題,無法保證完全正確,可能存在沒有考慮到的特殊情況。樓主再反饋吧。
F. 簡單的acm題目 - - 。求大神 是c語言
#include <stdio.h>
int main() {
int w, n;
while (scanf("%d%d", &w, &n) != EOF) {
int i, j, money[30002], temp, count = 0;
for (i = 0 ; i < n ; i++)
scanf("%d", &money[i]);
for (i = 1 ; i < n ; i++)
for (j = 0 ; j < i ; j++)
if (money[i] < money[j])
temp = money[i], money[i] = money[j], money[j] = temp;
i = 0, j = n - 1;
while (n > 0) {
if (i == j)
n--, count++;
else if (money[i] + money[j] <= w)
n = n - 2, i++, j--, count++;
else
n--, j--, count++;
}
printf("%d\n", count);
}
return 0;
}
G. 一個c語言, ACM大賽題目
請把輸出樣例顯示出來,如果跳躍能力為1是指能從1號跳到2號還是從1號跳到3號,
#include<stdio.h>
boolisLei(intk){
if(k==2||k==3||k==5||k==7||k==11||k==13||k==17||k==19){
returntrue;
}
returnfalse;
}
intmain()
{
boolflag=true;
intn,a,b=0,sum=0;
scanf("%d",&n);
for(inti=0;i<n;i++){
scanf("%d",&a);
if(isLei(a)){
b++;
}else{
b=0;
}
if(b>sum){
sum=b;
}
}
printf("%d",sum);
return0;
}
H. ACM c語言題目。急求。謝謝。
#include<stdio.h>
#include<math.h>
structmypoint{
intx;
inty;
};
intdistance(structmypointa,structmypointb){
return(int)sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+0.5);
}
intmain(){
intT,i,y0,n,d,sumy,count,flag;
structmypointcoordinates[1000];
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&y0,&n,&d);
for(i=1;i<=n;++i)
scanf("%d%d",&coordinates[i].x,&coordinates[i].y);
sumy=0;
count=0;
flag=1;
coordinates[0].x=coordinates[1].x;
coordinates[0].y=0;//設置第一次起跳點
for(i=1;i<=n&&flag;++i){
++count;
if(distance(coordinates[i],coordinates[i-1])>d){
printf("NO ");
printf("%d ",y0-sumy);
flag=0;
break;
}
sumy+=coordinates[i].y;
if(sumy>=y0){
printf("YES ");
printf("%d ",count);
flag=0;
break;
}
}
if(flag){
printf("NO ");
printf("%d ",y0-sumy);
}
}
return0;
}
I. c語言,,acm比賽題目,求解
//剛寫的,感覺木有問題了。沒有測試數據么?
#include<stdio.h>
//判定一次比賽的輸贏
intsingle_game(intm1,ints1,intx1,intm2,ints2,intx2){
while(x1!=0&&x2!=0){
if(x1!=0){
m2-=s1;
x1--;
}
if(m2<=0)
return1;
if(x2!=0){
m1-=s2;
x2--;
}
if(m1<=0)
return-1;
}
return0;
}
intmain(){
intN;
scanf("%d",&N);
int**comp;
comp=newint*[N];
for(inti=0;i<N;i++)
comp[i]=newint[6];
intwin_count=0;
for(inti=0;i<N;i++){
for(intj=0;j<6;j++){
scanf("%d",&comp[i][j]);
win_count+=single_game(comp[i][0],comp[i][1],comp[i][2],comp[i][3],comp[i][4],comp[i][5]);
}
}
if(win_count==0){
printf("TIEI! ");
}elseif(win_count<0){
printf("LOSE! ");
}else{
printf("WIN! ");
}
}
J. C語言問題acm比賽題目
請把輸出樣例顯示出來,如果跳躍能力為1是指能從1號跳到2號還是從1號跳到3號,
#include<stdio.h>
boolisLei(intk){
if(k==2||k==3||k==5||k==7||k==11||k==13||k==17||k==19){
returntrue;
}
returnfalse;
}
intmain()
{
boolflag=true;
intn,a,b=0,sum=0;
scanf("%d",&n);
for(inti=0;i<n;i++){
scanf("%d",&a);
if(isLei(a)){
b++;
}else{
b=0;
}
if(b>sum){
sum=b;
}
}
printf("%d",sum);
return0;
}