em hiểu đề của bài này rồi , như sau ạ:
nhập vào số sỏi N thuộc [30,50] , mỗi lượt được bốc số sỏi từ 1-5, người bốc viên cuối thắng
máy tính được bốc trước, lập trình sao cho máy tính luôn thắng nếu có thể (khi mà số sỏi chia hết cho 6 thì đến lượt của ai bốc trước ng đó sẽ thua) !
em làm như thế này đã đúng chưa, đã tối ưu chưa mng sửa giúp em ạ
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include <time.h>
int main(){
int N,a=0,b=0,i,s,p;
char ch;
srand(time(NULL));
printf("Nhap tong so vien soi(30-50):");
scanf("%d",&N);// nhap N
for(i=1;N>0;i++){
if(i%2!=0){// luot cua may tinh
if(N%6!=0){
s=N%6;
}else {
do{
s=1+rand()%5;
}while(s>N);
};
a=a+s;
N=N-s;
printf("\nmay tinh vua lay %d vien tong so soi cua may tinh la %d",s,a);
printf("\ntong so soi con lai la %d",N);
}else
{//luot cua nguoi
printf("\nnhap so soi ban muon lay :");
scanf("%d",&p);
while(p<=0||p>=6||p>N){
printf("\nban nhap sai, moi nhap lai so soi (0-5) va nho hon tong so soi con lai:");
scanf("%d",&p);
};
b=b+p;
N=N-p;
printf("\nban vua lay %d vien soi, tong so soi ban co la %d",p,b);
printf("\ntong so soi con lai la %d",N);
};
};
if(i%2==0){printf("\nmay tinh thang");
}else {
printf("\nban thang");}
return 0;
}