*問い81 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2081 80*80サイズの表の左上から出発して表の右下まで進む時、経路上の数字の和が最小になるルートを求めよ。 下か右にしか移動できないものとする。 解法 一段ずつの動的計画法で一発です。 #include<stdio.h> #include<string.h> int main(){ int ans[81][81],num; char c; memset(ans,0,sizeof(ans)); for(int i=1;i<=80;i++){ for(int j=1;j<=80;j++){ scanf("%d%c",&num,&c); if(i==1){ ans[i][j]=num+ans[i][j-1]; }else if(j==1){ ans[i][j]=num+ans[i-1][j]; }else{ ans[i][j]=num+(ans[i-1][j]<ans[i][j-1]?ans[i-1][j]:ans[i][j-1]); } } } printf("%d",ans[80][80]); }