10106 - Product()

本文详细介绍了如何实现大整数相乘的算法,并针对常见错误进行了修正,包括字符串处理、前置零处理等关键步骤。
部署运行你感兴趣的模型镜像

简单大整数相乘的问题

需要注意事项:

①对字符串处理要用memset(a,'0',sizeof(a));不可将'0'误写成0,memset可对字符数组进行任意赋值,处理长度为一个字节

②前置零处理


//通过 #include <stdio.h> #include <string.h> int main() { char x[260],y[260],mul[520]; while(scanf("%s%s",x,y)==2) { int u; memset(mul,0,sizeof(mul)); int ylen=strlen(y); int xlen=strlen(x); for(int i=0;i<xlen;i++) x[i]-='0'; for(int i=0;i<ylen;i++) y[i]-='0'; for(int k=ylen-1;k>=0;k--) { int p,q; q=0; u=ylen-1-k; for(int j=xlen-1;j>=0;j--) { p=x[j]*y[k]+q+mul[u]; mul[u++]=p%10; q=p/10; } if(q) mul[u++]=q; } int i; for(i=u-1;i>0;i--)//###,出错原因--前置零的处理 if(mul[i]) break; for(;i>=0;i--) printf("%d",mul[i]); printf("\n"); } return 0; } //通过 #include <stdio.h> #include <string.h> #define M 260 void reverse(char a[]) { int len=strlen(a); for(int i=0;i<len/2;i++) { char temp=a[len-1-i]; a[len-1-i]=a[i]; a[i]=temp; } } void mutiply(char a[],char b[],char c[]) { if (strcmp(a, "0") == 0 || strcmp(b, "0") == 0)//###,必须要做考虑,否则要加对前置零的处理。 { strcpy(c,"0"); return; } int alen,blen,q; alen=strlen(a); blen=strlen(b); for(int i=0;i<alen;i++) { q=0; for(int j=0;j<blen;j++) { int p=(a[i]-'0')*(b[j]-'0')+c[i+j]-'0'+q; q=p/10; c[i+j]=p%10+'0'; } if(q!=0) c[i+blen]=q+'0'; } if(q!=0) c[alen+blen]='\0'; else c[alen+blen-1]='\0'; } int main() { char x[M],y[M],result[2*M]; while(scanf("%s%s",x,y)==2) { reverse(x); reverse(y); memset(result,'0',sizeof(result));//这里的处理必须为'0',而不是0 mutiply(x,y,result); reverse(result); printf("%s\n",result); } return 0; }

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

public final class OplusBenchHelper { 50 private static final String TAG = "OplusBenchHelper"; 51 private static final boolean DEBUG = !SystemProperties.getBoolean("ro.build.release_type", false); 52 53 private static final String BENCH_MARK_ANTUTU = "com.antutu.ABenchMark"; 54 private static final String BENCH_MARK_ANTUTU_3D = "com.antutu.benchmark.full"; 55 56 private static final String BENCH_MARK_LUDASHI = "com.ludashi.benchmark"; 57 private static final String BENCH_MARK_ANTUTU_LITE = "com.antutu.ABenchMark.lite"; 58 private static final int CPU_MPAM_TARGET = 0x1011ea0; 59 60 /** 61 * Different 'uid' broadcast that antutu background bench process send to ui process 62 * when bench progress update. 63 */ 64 private static final int BENCH_MARK_ANTUTU_FIRST_STEP = 44; //first step of antutu bench test 65 private static final int BENCH_MARK_ANTUTU_UX_FIRST_STEP = 20; //first step of ux antutu bench test 66 private static final int BENCH_MARK_ANTUTU_FINISHED = 46; //finished uid msg when bench test finished. 67 private static final int BENCH_MARK_ANTUTU_RAM_SPEED = 11; //first step of memory antutu bench test. 68 /** V10 mem test sequence: 16->17->18->19->13 */ 69 private static final int BENCH_MARK_ANTUTU_SEQUENTIAL_READ = 16; 70 private static final int BENCH_MARK_ANTUTU_SEQUENTIAL_WRITE = 17; 71 private static final int BENCH_MARK_ANTUTU_RANDOM_READ = 18; 72 private static final int BENCH_MARK_ANTUTU_RANDOM_WRITE = 19; 73 private static final int BENCH_MARK_ANTUTU_DATABASE = 13; 74 75 private static final int BENCH_MARK_ANTUTU_OPENMP = 7; //openmp test 76 private static final int BENCH_MARK_ANTUTU_MULTITHREAD = 8; //multithread test 77 private static final int BENCH_MARK_ANTUTU_MULTITASK = 9; //multitask test 78 private static final int BENCH_MARK_ANTUTU_GEMM_MULTITHREAD = 10; //gemm multithread test 79 80 private static final int BENCH_MARK_ANTUTU_UI_LAG = 20; //UX UI lag test 81 private static final int BENCH_MARK_ANTUTU_WEBVIEW = 21; //UX web view test 82 private static final int BENCH_MARK_ANTUTU_QRCODE = 22; //UX QR code test 83 84 private static final int REFRESH_RATE_60 = 2; //keep same to OplusRefreshRateConstants.java 85 private static final int REFRESH_RATE_120 = 3; //keep same to OplusRefreshRateConstants.java 86 87 /* bench mode*/ 88 private static final String BENCH_MODE_DISABLE = "0"; 89 private static final String BENCH_MODE_ENABLE = "1"; 90 private static final String BENCH_MODE_ENABLE_WITH_JPEG_MUTIL = "2"; 91 private static final String BENCH_MODE_ENABLE_WITH_PDF = "3"; 92 private static final String BENCH_MODE_ENABLE_WITH_XML = "4"; 93 private static final String BENCH_MODE_ENABLE_WITH_PDF_QC = "5"; 94 95 /** 96 * MEM reserve 10000 ~ 30000, other modules should NOT use this range. 97 * Each product/platform can use 20 values, enough for current requirement. 98 */ 99 /** SM8550 */ 100 private static final String BENCH_MODE_SEQUENTIAL_READ_SM8550 = "10003"; 101 private static final String BENCH_MODE_SEQUENTIAL_WRITE_SM8550 = "10004"; 102 private static final String BENCH_MODE_RANDOMREAD_SM8550 = "10005"; 103 private static final String BENCH_MODE_RANDOMWRITE_SM8550 = "10006"; 104 private static final String BENCH_MODE_DATEBASE_SM8550 = "10007"; 105 /** MT6895 */ 106 private static final String BENCH_MODE_SEQUENTIAL_READ_MT6895 = "10023"; 107 private static final String BENCH_MODE_SEQUENTIAL_WRITE_MT6895 = "10024"; 108 private static final String BENCH_MODE_RANDOMREAD_MT6895 = "10025"; 109 private static final String BENCH_MODE_RANDOMWRITE_MT6895 = "10026"; 110 private static final String BENCH_MODE_DATEBASE_MT6895 = "10027"; 111 /**SM6225**/ 112 private static final String BENCH_MODE_SEQUENTIAL_READ_SM6225 = "10043"; 113 private static final String BENCH_MODE_SEQUENTIAL_WRITE_SM6225 = "10044"; 114 private static final String BENCH_MODE_RANDOMREAD_SM6225 = "10045"; 115 private static final String BENCH_MODE_RANDOMWRITE_SM6225 = "10046"; 116 private static final String BENCH_MODE_DATEBASE_SM6225 = "10047"; 117 /** SM6375 */ 118 private static final String BENCH_MODE_SEQUENTIAL_READ_SM6375 = "10063"; 119 private static final String BENCH_MODE_SEQUENTIAL_WRITE_SM6375 = "10064"; 120 private static final String BENCH_MODE_RANDOMREAD_SM6375 = "10065"; 121 private static final String BENCH_MODE_RANDOMWRITE_SM6375 = "10066"; 122 private static final String BENCH_MODE_DATEBASE_SM6375 = "10067"; 123 /** MT6983 */ 124 private static final String BENCH_MODE_SEQUENTIAL_READ_MT6983 = "10083"; 125 private static final String BENCH_MODE_SEQUENTIAL_WRITE_MT6983 = "10084"; 126 private static final String BENCH_MODE_RANDOMREAD_MT6983 = "10085"; 127 private static final String BENCH_MODE_RANDOMWRITE_MT6983 = "10086"; 128 private static final String BENCH_MODE_DATEBASE_MT6983 = "10087"; 129 /** SM8250 */ 130 private static final String BENCH_MODE_SEQUENTIAL_READ_SM8250 = "10103"; 131 private static final String BENCH_MODE_SEQUENTIAL_WRITE_SM8250 = "10104"; 132 private static final String BENCH_MODE_RANDOMREAD_SM8250 = "10105"; 133 private static final String BENCH_MODE_RANDOMWRITE_SM8250 = "10106"; 134 private static final String BENCH_MODE_DATEBASE_SM8250 = "10107"; 135 136 /** MEM_MAX */ 137 private static final String BENCH_MODE_SEQUENTIAL_READ_MEM_MAX = "29999"; 138 private static final String BENCH_MODE_SEQUENTIAL_WRITE_MEM_MAX = "29999"; 139 private static final String BENCH_MODE_RANDOMREAD_MEM_MAX = "29999"; 140 private static final String BENCH_MODE_RANDOMWRITE_MEM_MAX = "29999"; 141 private static final String BENCH_MODE_DATEBASE_MEM_MAX = "29999"; 142 143 /** 144 * CPU multithread reserve 30000 ~ 35000, other modules should NOT use this range. 145 * Each product/platform can use 20 values, enough for current requirement. 146 */ 147 private static final String BENCH_MODE_MULTITHREAD_MT6989 = "30003"; 148 private static final String BENCH_MODE_GEMM_MULTITHREAD_MT6989 = "30004"; 149 private static final String BENCH_MODE_OPENMP_MT6989 = "30005"; 150 private static final String BENCH_MODE_MULTITASK_MT6989 = "30006"; 151 152 private static final String BENCH_MODE_MULTITHREAD_SM8650 = "30023"; 153 private static final String BENCH_MODE_GEMM_MULTITHREAD_SM8650 = "30024"; 154 private static final String BENCH_MODE_OPENMP_SM8650 = "30025"; 155 private static final String BENCH_MODE_MULTITASK_SM8650 = "30026"; 156 157 /** 158 * UX test reserve 35000 ~ 40000, other modules should NOT use this range. 159 * Each product/platform can use 20 values, enough for current requirement. 160 */ 161 private static final String BENCH_MODE_UI_LAG_MT6989 = "35003"; 162 163 private static final String BENCH_MODE_UI_LAG_SM8650 = "35023"; 164 165 /* system properties to mark benchmode status, set by bench UI in other files */ 166 private static final String SYSTEM_PROPERTIES_SPEC = "sys.oplus.high.performance.spec"; 167 168 private static final int SEASONS = 1; 169 private static final int COASTLINE2 = 2; 170 private static final int BENCH_CHECK = 3; 171 private static final int DELAY_MS_BENCH_CHECK = 1000; 172 private static final int UAH_EVENT_BENCH_POWER_LIMIT = 214; //EVENT_BENCH_POWER_LIMIT 173 private static final int UAH_EVENT_BENCH_SEQUENTIAL_READ = 295; //EVENT_BENCH_SEQUENTIAL_READ 174 private static final int UAH_EVENT_BENCH_SEQUENTIAL_WRITE = 296; //EVENT_BENCH_SEQUENTIAL_WRITE 175 private static final int UAH_EVENT_BENCH_RANDOM_READ = 297; //EVENT_BENCH_RANDOM_READ 176 private static final int UAH_EVENT_BENCH_RANDOM_WRITE = 298; //EVENT_BENCH_RANDOM_WRITE 177 private static final int UAH_EVENT_BENCH_DATEBASE = 299; //EVENT_BENCH_DATEBASE 178 private static final String PKG_NAME = ""; 179 private static final long BITMAP_CACHE_TIMEOUT = 1000; //ms 180 private static final Object LOCK = new Object(); 181 private static int sStepCount = 0; 182 private static int sHandle = 0; 183 private static int sHandleRand = 0; 184 private static int sDelayMsSeasons = 0; 185 private static int sDelayMsCoastLine2 = 0; 186 private static int sTimeoutSeasons = 0; 187 private static int sTimeoutCoastLine2 = 0; 188 private static int sTimeoutMem = -1; 189 private static int sTimeoutRand = -1; 190 private static ArrayList<UAHResourceInfo> sList = null; 191 /*ludashi bitmap decode cache */ 192 private static String sLastResStr = ""; 193 private static int sLastResId = -999; 194 private static long sLastTimestamp = -999; 195 private static Bitmap sBitmapCache = null; 196 197 /** 198 * check platform 199 */ 200 private static boolean sIsDx2 = android.os.Build.HARDWARE.startsWith("mt6985"); 201 private static boolean sIsMT6895 = android.os.Build.HARDWARE.startsWith("mt6895"); 202 private static boolean sIsSM8550 = android.os.Build.SOC_MODEL.startsWith("SM8550"); 203 private static boolean sIsSM6225 = android.os.Build.SOC_MODEL.startsWith("SM6225"); 204 private static boolean sIsSM6375 = android.os.Build.SOC_MODEL.startsWith("SM6375"); 205 private static boolean sIsMT6983 = android.os.Build.HARDWARE.startsWith("mt6983"); 206 private static boolean sIsMT6989 = android.os.Build.HARDWARE.startsWith("mt6989"); 207 private static boolean sIsSM8250 = android.os.Build.SOC_MODEL.startsWith("SM8250"); 208 private static boolean sIsSM8650 = android.os.Build.SOC_MODEL.startsWith("SM8650"); 209 private static boolean sIsSM7675 = android.os.Build.SOC_MODEL.startsWith("SM7675"); 210 private static boolean sIsSM7550 = android.os.Build.SOC_MODEL.startsWith("SM7550");
07-09
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值