Ejemplo n.º 1
0
void ntt(int *A,int lgn,bool inv=false) {
	int n=1<<lgn;
	for(int i=0;i<n;i++)
		if(i<rev_int(i,lgn))
			swap(A[i], A[rev_int(i,lgn)]);
	for(int i=1;i<n;i*=2) {
		int W=1, Wn;
		if(inv) Wn=pW[n-(n/2/i)];
		else Wn=pW[n/2/i];
		for(int j=0;j<n;j++) {
			if(j&i) {
				W=1;
				continue;
			}
			int x=A[j], y=mul(A[j+i],W);
			A[j]=add(x,y);
			A[j+i]=sub(x,y);
			W=mul(W,Wn);
		}
	}
	if(inv)
		for(int i=0;i<n;i++)
			A[i]=mul(A[i],divN);
}
Ejemplo n.º 2
0
void	ft_write_header(int fd, t_asm *st_asm)
{
	int i;
	int	len;

	i = rev_int(COREWAR_EXEC_MAGIC);
	ft_write_int(fd, i);
	st_asm->header.name = ft_remove_cor(st_asm->header.name);
	ft_putstr_fd(st_asm->header.name, fd);
	len = ft_strlen(st_asm->header.name);
	len = PROG_NAME_LENGTH - len + 4;
	if (len < 0)
		ft_error("Name too big", 0, ASM_EXIT);
	ft_write_blank(len, fd);
	i = st_asm->header.prog_size;
	i = rev_int(i);
	ft_write_int(fd, i);
	ft_printf_fd(fd, "%s", st_asm->header.comment);
	len = ft_strlen(st_asm->header.comment);
	len = COMMENT_LENGTH - len + 4;
	if (len < 0)
		ft_error("Comments too big", 0, ASM_EXIT);
	ft_write_blank(len, fd);
}
Ejemplo n.º 3
0
Archivo: pp2.c Proyecto: j-angus/c
int main (int argc, char **argv)
{
	int num; /* the number entered by the user */
	
	printf("Please enter a positive three digit number: ");
	scanf("%d", &num);
	printf("You entered: %d\n", num);
	
	if (num < 100 || num > 999) {
		printf("That was a crap number!\n");
		printf("You're supposed to enter a positive three digit "
			"number dude.\n");
	}
	else
		printf("Digits reversed: %03d\n", rev_int(num));
	
	return 0;
}
Ejemplo n.º 4
0
int main()
{
	int a= 1234321;
	printf("a=%d, result=%d\n",a,rev_int(a));
	return 0;
}