void divid(int tes) { int i,j,k=0; i=out[tes][0]/2; j=out[tes][0]-i; if(out[tes][0]==0) return 0; else if(one==two) { one+=out[tes][1]*i; two+=out[tes][1]*j; out[tes][0]=0; } else if(one<two) { if(two-one>=out[tes][0]*out[tes][1]) one+=out[tes][1]*out[tes][0]; else { one+=out[tes][1]*j; if(one>two) { while(one>two) { one=one-out[tes][1]; k++; } one+=out[tes][1]; k=k-1; out[tes][0]=out[tes][0]-j+k; } divid(tes); } } else if(two<one) { if(one-two>=out[tes][0]*out[tes][1]) two+=out[tes][1]*out[tes][0]; else { two+=out[tes][1]*j; if(one<two) { while(one<two) { two=two-out[tes][1]; k++; } two+=out[tes][1]; k=k-1; out[tes][0]=out[tes][0]-j+k; } divid(tes); } } }
long long judge() { long long i; for(i=n;i>=1;i--) if(n%i==0 && divid(i)) return i; }
void divide() { char result[1000],a[1000],b[1000]; printf("请输入第一个数:\n"); gets(a); printf("请输入第二个数:\n"); gets(b); divid(a,b,result); printf("结果为:\n"); puts(result); }
int main() { int i,j,k; scanf("%d",&n); m=n; for(i=1;i<=n;i++) scanf("%d %d",&inp[i][0],&inp[i][1]); for(i=n/2;i>0;i--) { heap(i); } heapSort(); for(i=1;i<m;i++) { j=i; while(out[j][1]==out[i+1][1]) { out[j][0]+=out[i+1][0]; out[i+1][0]=0; i++; } } for(i=1;i<=m;i++) { inp[i][0]=out[i][0]; inp[i][1]=out[i][1]; } for(i=1;i<=m;i++) { divid(i); } if(one>two) printf("%d\n",one-two); else printf("%d\n",two-one); return 0; }
int Read() { VRAM = init_VRAM(); AllClr_VRAM( VRAM ); char * VRAM_A = init_VRAM(); AllClr_VRAM( VRAM_A ); char * VRAM_B = init_VRAM(); AllClr_VRAM( VRAM_B ); int total_page , page = 0 , i ,last_key_pressed=0; char buff[1000] , statue_bar[100]; int auto_down = 0 , _auto = 0 , mark = 1 ; int user_contrast = *p_contrast; long auto_time = 0 ; int msg_utf8 = 0; auto_down = _auto = 0 ; strcpy( txtname , fname ); TXT = fopen( txtname , "rb" ) ; fseek(TXT , 0 , SEEK_END); filesize = ftell( TXT ); total_page = divid(); memset( buff , 0x0 , 1000 ); load_mark( &page , total_page , 1 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page+1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); auto_down = 0 ; while( 1 ) { if(isKeyPressed(KEY_NSPIRE_SCRATCHPAD)) { wait_no_key_pressed(); if(msg_utf8==0) i = show_msgbox_3b( "提示" , "调用API必须保证文本为UTF-8编码,也就是此时用nNovel无法正常阅读,要继续吗?" , "确定" , "取消" ,"确定且不再提示" ); else i = 1; if( i == 3 ) { i = 1; msg_utf8 = 1; } if( i == 1 ) { wait_no_key_pressed(); show_msgbox( "本页内容:" , buff ); } } if(isKeyPressed(KEY_NSPIRE_MULTIPLY)) { if( is_cx && (*p_contrast)< 225) (*p_contrast)++; else if( (!is_cx) && (*p_contrast) < 0xc0 ) (*p_contrast)++; } else if(isKeyPressed(KEY_NSPIRE_DIVIDE)) { if( is_cx && (*p_contrast)> 1 ) (*p_contrast)--; else if( (!is_cx) && (*p_contrast) >50 ) (*p_contrast)--; } else if(isKeyPressed(KEY_NSPIRE_TAB)) { i = num_input(VRAM , 30 , 30 , " ����ҳ��" ); if( i == -1) continue; else if( i == 0 ){ page = 0;} else if( i > total_page){ page = total_page;} else page = i - 1; memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); wait_no_key_pressed(); } else if(isKeyPressed(KEY_NSPIRE_DOC)) { save_mark( page , total_page , 0 ); wait_no_key_pressed(); } else if(isKeyPressed(KEY_NSPIRE_MENU)) { load_mark( &page , total_page , 0 ); memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_B,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); wait_no_key_pressed(); } else if(isKeyPressed(KEY_NSPIRE_SHIFT)) { if(cl_bg == 15) { cl_fg = 15; cl_bg = 0; } else { cl_fg = 0; cl_bg = 15; } memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); wait_no_key_pressed(); } if((*p_RTC - auto_time)%(_auto) != 0) mark = 0; if( ( isKeyPressed(KEY_NSPIRE_DOWN ) || isKeyPressed(KEY_NSPIRE_MINUS )|| auto_down == 1 )&& page < total_page ) { auto_down = 0; page++; memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); if( cl_bg != 15 ) AllFill_VRAM(VRAM_B,cl_bg); else AllClr_VRAM(VRAM_B); PrintChStr( VRAM_B , 0 , 0 , buff , cl_fg , cl_bg ); if( config.show_page_slide == 1 ) slide_down(statue_bar , VRAM_A , VRAM_B , 1 ); else { Fill_Rect_VRAM( VRAM_B , 0 , 224 , 320 , 240 , 0 ); PrintChStr( VRAM_B , 0 , 224 , statue_bar , 15 , 0 ); PutDisp_DDVRAM(VRAM_B); for( i=0 ; i<=FIRST_KEY_WAIT ; i++ ) { if((!isKeyPressed(KEY_NSPIRE_DOWN )|| isKeyPressed(KEY_NSPIRE_MINUS ))) break; if(last_key_pressed) break; sleep(1); if( i == FIRST_KEY_WAIT ) last_key_pressed = 1; } } memcpy(VRAM_A,VRAM_B,SCREEN_BYTES_SIZE); } else if( isKeyPressed(KEY_NSPIRE_UP )|| isKeyPressed(KEY_NSPIRE_PLUS ) ) { if( page == 0 ) continue; page --; memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ], 1 , TXT ); AllFill_VRAM(VRAM_B,cl_bg); PrintChStr( VRAM_B , 0 , 0 , buff , cl_fg , cl_bg ); if( config.show_page_slide == 1 ) slide_up( statue_bar , VRAM_B , VRAM_A , 1 ); else { Fill_Rect_VRAM( VRAM_B , 0 , 224 , 320 , 240 , 0 ); PrintChStr( VRAM_B , 0 , 224 , statue_bar , 15 , 0 ); PutDisp_DDVRAM(VRAM_B); for( i=0 ; i<=FIRST_KEY_WAIT ; i++ ) { if((!isKeyPressed(KEY_NSPIRE_UP )|| isKeyPressed(KEY_NSPIRE_PLUS ))) break; if(last_key_pressed) break; sleep(1); if( i == FIRST_KEY_WAIT ) last_key_pressed = 1; } } memcpy(VRAM_A,VRAM_B,SCREEN_BYTES_SIZE); } else last_key_pressed = 0; memcpy(VRAM,VRAM_A,SCREEN_BYTES_SIZE); Fill_Rect_VRAM( VRAM , 0 , 224 , 320 , 240 , 0 ); if( config.show_time ) { update_time(); if( config.show_second ) sprintf(statue_bar , " %d%d:%d%d:%d%d %5d/%5d %4s", time.hour/10 , time.hour%10 , time.minute/10, time.minute%10 , time.second/10 , time.second%10 , page +1 , total_page +1 , _auto == 0?"":"Auto"); else sprintf(statue_bar , " %d%d:%d%d %5d/%5d %4s", time.hour/10 , time.hour%10 , time.minute/10, time.minute%10 , page +1 , total_page +1 ,_auto == 0?"":"Auto"); } else { sprintf(statue_bar , " %5d/%5d", page +1 , total_page +1 ); } PrintChStr( VRAM , 0 , 224 , statue_bar , 15 , 0 ); // DrawMiniString_VRAM(VRAM , 0 , 228 , statue_bar , 15 , 0 ); PutDisp_DDVRAM(VRAM); if( ! config.show_time ) { if( !(isKeyPressed(KEY_NSPIRE_UP)||isKeyPressed(KEY_NSPIRE_DOWN)) ) wait_key_pressed(); } if( isKeyPressed(KEY_NSPIRE_ESC)) { if(isKeyPressed(KEY_NSPIRE_CTRL)) goto exit; switch(menu(VRAM,10,10," �˵�\nҳ����ת(Tab)\n�Զ���ҳ\n��ȡ��ǩ(menu)\n������ǩ(doc)\n����\nҹ��ģʽ(shift)\n�����ǩ��ҳ���˳�\n����API�鿴��ҳ(��ǩ��)\n�˳�(ctrl+esc)\n","\n������λ����ת������λ��\n����/�ر��Զ���ҳ\n����ǩ�ļ��ж�ȡ����\n����ǩ�ļ���д�����\n�鿴��������\n����ҹ��ģʽ(��ɫ)\n��������ɵ�������ǩ�ͷ�ҳ�Ľ���ļ�\n����MsgBox����ʾ��ҳ����\n�˳�����\n") ) { case 1://ҳ����ת { i = num_input(SCREEN_BASE_ADDRESS , 30 , 30 , " ����ҳ��" ); if( i == -1) break; else if( i == 0 ){ page = 0;} else if( i > total_page){ page = total_page;} else page = i - 1; memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); break; } case 2://�Զ���ҳ { if( _auto != 0 ) { _auto = 0 ; mark = 1; break; } _auto = num_input( SCREEN_BASE_ADDRESS , 30 , 30 , "��������" ); if(_auto == -1) _auto = 0; auto_time = *p_RTC; break; } case 3: //��ȡ��ǩ { load_mark( &page , total_page , 0 ); memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_B,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); break; } case 4: save_mark( page , total_page , 0 );break;//������ǩ case 5: //���� { setup_config(); memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); break; } case 6: //��ɫ { if(cl_bg == 15) { cl_fg = 15; cl_bg = 0; } else { cl_fg = 0; cl_bg = 15; } memset( buff , 0x0 , 1000 ); fseek( TXT , pagepos[page] , SEEK_SET ); fread( buff , pagepos[ page +1 ] - pagepos[ page ] , 1 , TXT ); AllFill_VRAM(VRAM_A,cl_bg); PrintChStr( VRAM_A , 0 , 0 , buff , cl_fg , cl_bg ); PutDisp_DDVRAM( VRAM_A ); break; } case 7: //�����ǩ { char path[ 50 ]; for( i = 0 ; i < strlen(txtname) - 8 ; i ++ ) path[i] = txtname[i] ; path[ i ] = 0; strcat( path , ".div" ); remove(path); for( i = 0 ; i < strlen(txtname) - 8 ; i ++ ) path[i] = txtname[i] ; path[ i ] = 0; strcat( path , ".sav" ); remove(path); goto exit2; } case 8://API { wait_no_key_pressed(); if(msg_utf8==0) i = show_msgbox_3b( "提示" , "调用API必须保证文本为UTF-8编码,也就是此时用nNovel无法正常阅读,要继续吗?" , "确定" , "取消" ,"确定且不再提示" ); else i = 1; if( i == 3 ) { i = 1; msg_utf8 = 1; } if( i == 1 ) { wait_no_key_pressed(); show_msgbox( "本页内容:" , buff ); break; } else break; } case 9: goto exit;//�˳� default :wait_no_key_pressed();break; } wait_no_key_pressed(); } if( config.auto_save ) if( page%config.auto_save_time==0 ) save_mark( page , total_page , 1 ); if( (*p_RTC - auto_time)%(_auto) == 0 && mark == 0) { mark = 1 ; auto_down = 1 ; auto_time = *p_RTC; } } exit: save_mark( page , total_page , 1 ); exit2: * p_contrast = user_contrast; fclose( TXT ); close_VRAM( VRAM_A );close_VRAM( VRAM_B ); close_VRAM( VRAM ); return 0; }
void opr() { switch ( ir.m) { //rtn case 0: ret(); break; //neg case 1: neg(); break; //add case 2: add(); break; //sub case 3: sub(); break; //mul case 4: mul(); break; //div case 5: divid(); break; //odd case 6: odd(); break; //mod case 7: mod(); break; //eql case 8: eql(); break; //neq case 9: neq(); break; //lss case 10: lss(); break; //leq case 11: leq(); break; //gtr case 12: gtr(); break; //geq case 13: geq(); break; default: fprintf(output, "OP code input was invalid. "); sio3(); } }
void executeInstruction() { switch(ir.op) { case 1: lit(); break; case 2: opr(); break; case 3: lod(); break; case 4: sto(); break; case 5: cal(); break; case 6: inc(); break; case 7: jmp(); break; case 8: jpc(); break; case 9: sio(); default: break; } void opr() { switch ( ir.m) { //rtn case 0: ret(); break; //neg case 1: neg(); break; //add case 2: add(); break; //sub case 3: sub(); break; //mul case 4: mul(); break; //div case 5: divid(); break; //odd case 6: odd(); break; //mod case 7: mod(); break; //eql case 8: eql(); break; //neq case 9: neq(); break; //lss case 10: lss(); break; //leq case 11: leq(); break; //gtr case 12: gtr(); break; //geq case 13: geq(); break; default: fprintf(output, "OP code input was invalid. "); halt = 1; break; } } }