Champernowne Constant loop help
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
%i have Champernowne Constant is a real number whose digits in decimal representation come from the concatenation of all consecutive positive integers starting from 1. ex:'12345678910111213....'
%my job is return array vy contain nth digit from Champernowne Constant,n is take from array vx
%ex: vx=[10 11 12 13 14 15] => vy=[ 1     0     1     1     1     2] 
%my code is 
 vy=[]
  for i=1:length(vx)
      str='';
      j=1;
      while length(str)<vx(i)
          str=strcat(str,num2str(j));
          j=j+1;
      end
      vy=[vy str2num(str(vx(i)))];
end
%the code is success with litte vx,but with lagre vx it over max loop of matlab,so how could i fix
댓글 수: 1
  Jonas
      
 2021년 5월 16일
				
      편집: Jonas
      
 2021년 5월 16일
  
			maybe it helps if you have a look into the width of numbers: the numbers from 0:9 have size ceil(log10(number))=1, after that the numbers from 10:99 have width ceil(log10(numbers))=2 and so on. this way you could have a look only on the numbers in the decade you are interested in.
by the way, how big gets your n? you can easily use smth like
sprintf('%i',1:10000)
and then extract the numbers you are interested in?
답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

