最近在複習沒有更新,被同學問到這樣乙個題就做了一下隨便發上來吧。
#pragma warning(disable:4996)
#include #include #include #include using namespace std;
#define n 1005
char dt[n];
//data int
int dtint[n];
int countsum(int len)
bool divthree(int len)
else if (sum % 3 == 1)
}if (work) return true;
} //輸入樣例 54676778 排序45667778 (4+5+6+6+7+7+8)%3 == 2 進入這個if判斷
//如果刪5 剩下4667778 不能除以5 輸出impossible
//如果刪除8 剩下4566777 滿足除以3==0 又有5 所以最終輸出 7776645
//所以這裡不能單純刪最小的5,要判斷一下有沒有0,沒有0的話至少留乙個5
else if (sum % 3 == 2)
}if (work) return true;
} else
if (dtint[i] == 5) five++;}}
if (work) return true;
} }return false;
}//判斷是不是能被5整除 如果可以換位置。
bool divfive(int len)
} return false;
}int main()
} if (count1 > 0)
printf("\n");
} else
}//如果既不能刪除乙個數字變成合法的數字,還要一種解法就是0,萬能的,參考樣例 505,他不能刪除任何乙個成為合法的,但是有萬能的0
else if (len != 0 && dtint[0] == 0)
else printf("impossible\n");
}
能被 K 整除的最大連續子串長度
網上流傳的2017美團秋招筆試題 問題描述 兩個測試樣例輸出都是5 演算法思路 暴力解法時間會超限,使用一種很巧妙的數學方法。用在讀取陣列arr時用陣列sum記錄其前 i 項的和,即 sum i arr 1 arr 2 arr i 利用這乙個數學性質 假設前m項之和被 k 除后餘數是 x,前n項之和...
AcWing 890 能被整除的數
題目描述 給定乙個整數n和m個不同的質數p1,p2,pm。請你求出1 n中能被p1,p2,pm中的至少乙個數整除的整數有多少個。輸入格式 第一行包含整數n和m。第二行包含m個質數。輸出格式 輸出乙個整數,表示滿足條件的整數的個數。資料範圍 1 m 16,1 n,pi 10 9 輸入樣例 10 2 2...
能被N整除的數字的特徵(數學知識點)
能被1整除的數 好像是所有數都行 能被2整除的數 末位數字是偶數的數 能被3整除的數 各位數字之和能被3整除 能被4整除的數 末尾兩位數字能被4整除 能被5整除的數 末位是0或5的數 能被6整除的數 既能被2整除,又能被3整除 能被7整除的數 方法1 割尾法 適用於數字位數較少 乙個數割去末位數字,...