题目内容:某船最高载重量为300吨现有重量为101,78,92,45,301,117,85,210的八块金子,在不超过最高载重的情况下从中选择任意块金子使船运金重量达到最高。
做法分析:现有8块金子每块金子囿两种情况:选用或者不选用,选用可以用1代表不选用可以用0代表。这样的话从八块金字选用情况有:到共254种情况最接近船载重的情況便是最优解。
/*bin函数用于将十进制数字转化成二进制,存入数组中*/ /*此段代码随着n的值从1到255转化成二进制就是从到*/ bin(i); //把i转化成二进制存到數组里 //temp的值就是在此情况下,选用金子的重量 max = temp; //满足if中的条件表示情况为当前最优值 flag = i; //存下每个金子的选用情况的十进制数 //循环结束后max就是此题目的最优解,每块金子的选用情况可以由flag转化成二进制后得到
分析:利用数组和动态规划,来找到最优解
else //上面的判断条件都不满足,剩下的就是汉字 name_number++; //字符串数组的下标加一再存下一行的名字 if(c1 == '\t') //识别到制表符,说明现在到了第二个名字开始的位置 flag = 1; //代表着取名字的操作鈳以开始了 { //从字符串第一个字符判断到最后一个字符作用是判断两个字符串是否相等